TypeScriptTypy podstawowe
Wnioskowanie typów
Automatyczne ustalanie typów przez kompilator bez pisania adnotacji.
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: numberWięcej przykładów
#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
#- string, number, booleanPodstawowe typy prymitywne: tekst, liczby i wartości logiczne.
- Typy literałoweTypy dopuszczające tylko konkretne wartości, np. "easy" | "hard".
- Typy funkcjiTypowanie parametrów, wartości zwracanej i samych funkcji jako wartości.
- satisfiesSprawdza, czy wartość pasuje do typu, nie zmieniając typu wywnioskowanego.
- NoInfer<Type>Blokuje wnioskowanie parametru typu z danego miejsca, żeby typ ustalały inne argumenty.
Widzisz błąd albo brakuje przykładu? Napisz do nas.