"noImplicitAny"

Zgłasza błąd, gdy kompilator musiałby po cichu przyjąć typ any.

Na tej stronie

Przykład

#
TypeScript
function totalPoints(scores) {
  // Błąd: Parameter 'scores' implicitly has an 'any' type.
  return scores.reduce((a, b) => a + b, 0)
}

function totalPointsTyped(scores: number[]) {
  return scores.reduce((a, b) => a + b, 0)
}

console.log(totalPointsTyped([10, 20, 30]))
Wynik
60

Definicja i zastosowanie

#

Przy włączonej opcji noImplicitAny kompilator nie pozwala zostawić parametru czy zmiennej bez typu, jeśli nie da się go wywnioskować. Bez niej takie miejsca dostają niejawnie typ any i przestają być sprawdzane.

Opcja jest częścią trybu strict. W praktyce oznacza, że każdy parametr funkcji musi mieć typ, chyba że wynika on z kontekstu, na przykład w funkcji zwrotnej przekazanej do map().

Świadome użycie any przez jawny zapis nadal jest dozwolone. Opcja wyłapuje tylko przypadki, w których any pojawiło się przez przeoczenie.

Składnia

#
Składnia
"noImplicitAny": true

Dobre praktyki

#
  • W funkcjach zwrotnych typ parametru zwykle wynika z kontekstu, więc nie trzeba go pisać.
  • Jeśli naprawdę potrzebujesz any, zapisz go jawnie. Będzie widoczny w przeglądzie kodu.

Powiązane hasła

#

Widzisz błąd albo brakuje przykładu? Napisz do nas.