TypeScriptTypy podstawowe

Wnioskowanie typów

Automatyczne ustalanie typów przez kompilator bez pisania adnotacji.

Na tej stronie

Przykład

#
TypeScript
const lessons = [
  { title: 'HTML', minutes: 12 },
  { title: 'CSS', minutes: 15 }
]
// type: { title: string; minutes: number }[]

const totalMinutes = lessons.reduce((sum, l) => sum + l.minutes, 0)
// type: number

const titles = lessons.map((l) => l.title.toUpperCase())
// type: string[]

console.log(totalMinutes, titles)
Wynik
27 ['HTML', 'CSS']

Definicja i zastosowanie

#

TypeScript w wielu miejscach sam ustala typ, patrząc na wartość. Zapis let count = 0 daje zmienną typu number, a funkcja zwracająca a + b dla dwóch liczb ma wywnioskowany typ zwracany number.

Dzięki temu kod nie jest przeładowany adnotacjami. Dobra praktyka to typować granice: parametry funkcji, publiczne API, dane z zewnątrz, a resztę zostawić wnioskowaniu.

Typ wywnioskowany zobaczysz w edytorze po najechaniu kursorem na zmienną. Jeśli jest inny, niż zakładasz, dopisz adnotację, żeby kompilator zgłosił rozbieżność tam, gdzie powstaje.

Składnia

#
Składnia
let liczba = 0
// TypeScript wnioskuje: number

Więcej przykładów

#
Gdy wnioskowanie to za mało
TypeScript
const ids = []
// type: any[] (bez strict) lub never[] w niektórych kontekstach

const scores: number[] = []
scores.push(90)
console.log(scores)
Wynik
[90]

Dobre praktyki

#
  • Pustym tablicom i obiektom, które wypełniasz później, nadawaj typ jawnie.
  • Najeżdżaj kursorem na zmienne w edytorze. To najszybszy sposób, żeby zobaczyć, co wywnioskował kompilator.

Powiązane hasła

#

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