ExpertiDict

TypeScript · Intermediário · Português · Técnico

catch com unknown

/ˈkɛtʃ kõ ʌnˈnoʊn/substantivo

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

Veja também

Todos os termos de TypeScript