TypeScript · Avançado · Inglês · Técnico
assertion function
Função cuja assinatura usa asserts, como asserts x is string, indicando que, se ela retornar sem lançar exceção, o argumento tem o tipo afirmado dali em diante.
Onde usar
Útil para validações que lançam erro, como assertDefined, e para bibliotecas de teste. Depois da chamada, o resto da função ganha o tipo estreitado sem precisar de if.
Em código
function exige(
x: unknown
): asserts x is string {
if (typeof x !== 'string') throw Error('x');
}
declare const v: unknown;
exige(v);
v.toUpperCase(); // v: stringExemplos
I added an assertion function to validate the config.
Adicionei uma assertion function para validar a configuração.
After the assertion, the value is a string for the rest of the scope.
Depois da asserção, o valor é string no resto do escopo.
Cuidado
O compilador confia na assinatura sem conferir o corpo: se a função não lançar no caso inválido, o tipo afirmado passa a ser falso.
Sinônimos
função de asserção