Executando verificação de segurança...
1

Não entendi muito bem qual é o propósito do satisfies. O que seria esse "error"? Seria um erro em tempo de compilação?

Isso significa dizer que quando eu coloco o satifies dispensa um if para verificar o tipo da variável?

Carregando publicação patrocinada...
2

Adaptando o exemplo da publicação, não ficou claro para mim também, porque é possível fazer isso no TypeScript 4.8.4:

type RGB = [red: number, green: number, blue: number];
type Color = RGB | string;

const myColor: Color = 'blue'; // ok
const myIncorrectColor: Color = 420; // erro

myColor.toUpperCase(); // ok

Playground

Mas lendo o issue sobre essa feature, descobri um cenário que parece fazer sentido. Por exemplo:

type Keys = 'a' | 'b' | 'c' | 'd';

const p = {
    a: 0,
    b: "hello",
    x: 8 // erro
} satisfies Partial<Record<Keys, unknown>>;

let a = p.a.toFixed(); // ok, a = number
let b = p.b.substr(1); // ok, b = string
let d = p.d; // erro

Playground

type Keys = 'a' | 'b' | 'c' | 'd';

const p: Partial<Record<Keys, unknown>> = {
    a: 0,
    b: "hello",
    x: 8 // erro
};

let a = p.a.toFixed(); // erro, mas deveria funcionar
let b = p.b.substr(1); // erro, mas deveria funcionar
let d = p.d; // funcionou, mas deveria dar erro

Playground

E tem uma discussão bem mais profunda na issue com vários exemplos.

1