Читать книгу Programowanie w TypeScript - Boris Cherny - Страница 11
System typów
ОглавлениеNowoczesne języki programowania mają różne rodzaje systemów typów.
System typów
Zbiór reguł, które program do sprawdzania typów wykorzystuje do przypisywania typów w programie.
Zasadniczo wyróżniamy dwa rodzaje systemów typów: takie, w których kompilator wymaga określenia typu wszystkich obiektów przy użyciu jawnej składni, oraz takie, które potrafią automatycznie wywnioskować typy obiektów. Oba podejścia mają pewne wady i zalety1.
TypeScript czerpie inspiracje z obu systemów typów – możemy dodawać jawne adnotacje typów lub pozwolić TypeScriptowi automatycznie wywnioskować większość typów.
Do jawnego pokazywania kompilatorowi TypeScriptu, jakich typów chcemy użyć, służą adnotacje. Adnotacje mają postać wartość: typ i mówią programowi do sprawdzania typów: „Hej! Widzisz tę wartość? Jej typ to typ”. Przyjrzyjmy się kilku przykładom (w komentarzu na końcu każdego wiersza określiliśmy faktyczny typ zastosowany przez kompilator TypeScriptu):
let a: number = 1 // a jest liczbą
let b: string = ‘hello’ // b jest łańcuchem
let c: boolean[] = [true, false] // c jest tablicą wart. logicznych
A gdy chcemy, aby TypeScript sam wywnioskował typy, wystarczy pominąć je i pozostawić to zadanie kompilatorowi:
let a = 1 // a jest liczbą
let b = ‘hello’ // b jest łańcuchem
let c = [true, false] // c jest tablicą wart. logicznych
Od razu można zauważyć, jak dobrze TypeScript radzi sobie z automatycznym wnioskowaniem typów. Gdy pominęliśmy adnotacje, typy nie zmieniły się! W tej książce będziemy stosować adnotacje tylko wtedy, gdy to konieczne – w pozostałych sytuacjach pozwolimy, aby TypeScript magicznie je wywnioskował.
Zasadniczo dobrze jest pozostawić TypeScriptowi automatyczne wnioskowanie większości typów, minimalizując ilość kodu z jawnie zdefiniowanymi typami.