TypeScript · Intermediário · Português · Técnico
catch com unknown
Com a flag useUnknownInCatchVariables, parte do strict, a variável do catch tem tipo unknown em vez de any. Para usá-la é preciso estreitar, por exemplo com instanceof Error.
Onde usar
Muda o catch de todo código antigo: e.message passa a dar erro. A solução é if (e instanceof Error), porque em JavaScript qualquer valor pode ser lançado.
Em código
try {
JSON.parse('{');
} catch (e) {
// e é unknown; e.message daria erro
const m = e instanceof Error
? e.message : String(e);
}Exemplos
Com o catch com unknown, precisei checar instanceof Error antes de ler a mensagem.
O catch com unknown é chato, mas evita estourar em throw de string.
Cuidado
Anotar o catch como any desfaz a proteção; prefira uma função utilitária que converte unknown em mensagem.
Sinônimos
useUnknownInCatchVariables