TypeScript · Intermediário · Inglês · Informal
double assertion
Padrão valor as unknown as Tipo, que passa por unknown para contornar a recusa do compilador em converter entre tipos sem sobreposição.
Onde usar
Aparece em testes e em integrações com tipos mal definidos, quando o compilador reclama que a conversão pode ser um erro. É sinal vermelho: ou você sabe mais que o compilador, ou está escondendo um bug.
Em código
const x = 'texto';
// const n = x as number; // erro de conversão
const n = x as unknown as number;
n.toFixed(); // compila, quebra em runtimeExemplos
He used a double assertion to force the mock into the type.
Ele usou um double assertion para forçar o mock no tipo.
If you need a double assertion, the types probably don't match.
Se você precisa de um double assertion, os tipos provavelmente não combinam.
Cuidado
Não use para silenciar erros de design: quem faz as unknown as T perde a única garantia que o compilador dava sobre o valor.
Sinônimos
as unknown as
Antônimos
type guard