satisfies: upcasting seguro (TypeScript 4.9)
(engineering.ab180.co)-
O TypeScript 4.9 está previsto para ser lançado em 15 de novembro, com beta a partir de 20 de setembro
- Atualmente já pode ser usado no Playground na versão nightly
-
A palavra-chave
satisfiesfoi adicionada ao TypeScript 4.9 -
Diferente da palavra-chave
as, ela oferece suporte a upcasting seguro -
Antes, o upcasting seguro só era possível quando o tipo já estava definido previamente
-
Com
satisfies, também é possível fazer upcasting seguro de forma prática até para um único par chave-valor de um objeto -
Antes
// Seguro, mas exige definição de tipo de forma trabalhosa (definição de tipo)
const object: {
a: number
b: { a: number }
} = {
a: 10,
b: { a: 10, b: 20 } // no error
// b: {} // error
}
// Prático, mas não é seguro (as)
const object = {
a: 10,
b: { a: 10, b: 20 } as { a: number } // no error
// b: {} as { a: number } // no error (!!!)
}
satisfies
// Prático e seguro
const object = {
a: 10,
b: { a: 10, b: 20 } satisfies { a: number } // no error
// b: {} satisfies { a: number } // error
}
3 comentários
Fico com a impressão de que teria sido melhor tirar o
const assertione colocar osatisfies,,Ah,
const assertion-> é sóassertion.Parece que está ficando cada vez mais complexo 😢