9 pontos por 0xwof 2022-09-14 | 3 comentários | Compartilhar no WhatsApp
  • 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 satisfies foi 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

 
yangeok 2022-09-19

Fico com a impressão de que teria sido melhor tirar o const assertion e colocar o satisfies,,

 
yangeok 2022-09-19

Ah, const assertion -> é só assertion.

 
kyc1682 2022-09-14

Parece que está ficando cada vez mais complexo 😢