Typy danych w TypeScript: kompletny przewodnik

Typy danych w TypeScript

Typy danych w TypeScript: każdy typ w jednej tabeli | We.Inc

string, number, boolean, bigint, symbol, null, undefined, any, unknown, never, void, object, tablice, krotki, enumy, literały i unie, każdy z przykładem.

Podstawowe typy danych w TypeScript to siedem prymitywów JavaScriptu: string, number, bigint, boolean, symbol, null i undefined, pisane małymi literami. Ponadto TypeScript dodaje typy specjalne (any, unknown, never, void, object), struktury takie jak tablice, krotki i enumy oraz sposoby łączenia typów: typy literałowe, unie i przecięcia.

Cztery grupy

Przeszukuj zestawienie po nazwie albo filtruj je według grupy. Każdy wiersz ma jednolinijkowy przykład, który możesz wkleić do pliku .ts, a kolumna uwag wskazuje zachowania, na których ludzie się potykają, na przykład różnicę między void a undefined albo powód, dla którego unknown jest bezpieczniejsze niż any.

Najczęściej zadawane pytania

Ile typów prymitywnych ma TypeScript?

Siedem, tyle samo co JavaScript: string, number, bigint, boolean, symbol, null i undefined. number obejmuje zarówno liczby całkowite, jak i ułamkowe; nie ma osobnego typu int ani float.

Jaka jest różnica między any a unknown?

Oba akceptują dowolną wartość. any pozwala zrobić z nią wszystko, więc błędy przechodzą niezauważone. unknown nie pozwala zrobić nic, dopóki nie zawęzisz typu sprawdzeniem, na przykład przez typeof, dlatego to bezpieczny wybór dla niezaufanych danych.

Do czego służy typ never?

never opisuje wartości, które nie mogą wystąpić: typ zwracany funkcji, która zawsze rzuca wyjątek, oraz to, co zostaje z unii po obsłużeniu każdego jej elementu. To drugie zastosowanie napędza sprawdzanie wyczerpalności.

Czy void to to samo co undefined?

Nie. void to typ zwracany funkcji, której wartość zwracana powinna zostać zignorowana. Funkcji o typie zwracanym void można przekazać callback, który coś zwraca, natomiast undefined oznacza, że wartość naprawdę jest undefined.

Jaka jest różnica między object, Object i {}?

object oznacza dowolną wartość nieprymitywną, taką jak obiekty, tablice i funkcje. {} oznacza dowolną wartość z wyjątkiem null i undefined, w tym prymitywy. Globalny typ Object rzadko się przydaje; lepiej używać object lub konkretnego typu obiektowego.

Prymitywy: co zwraca typeof

Typy specjalne wyznaczają granice

Łączenie typów

Od unknown do użytecznego typu

Zawężaj niezaufane dane krok po kroku

Każde sprawdzenie usuwa kolejne możliwości. W ostatniej gałęzi kompilator wie, że value jest typu string.

never jako sprawdzenie wyczerpalności

Jeśli do unii dołączy nowy status, przypisanie do never przestanie się kompilować, dopóki nie dodasz dla niego case.

Tekst dowolnej długości. Template literals to również stringi.

Zarówno liczby całkowite, jak i ułamkowe, w tym NaN i Infinity.

Liczby całkowite spoza bezpiecznego zakresu. Przyrostek n wymaga docelowej wersji ES2020.

Tylko true lub false.

Każde wywołanie Symbol() tworzy unikalną wartość.

Przy włączonym strictNullChecks null musi być wymieniony w typie, aby był dozwolony.

Wartość zadeklarowanej, ale nieprzypisanej zmiennej oraz brakującej opcjonalnej właściwości.

Wyłącza sprawdzanie tej wartości. noImplicitAny zgłasza miejsca, w które wkrada się bez zapowiedzi.

Przechowuje dowolną wartość, ale nie pozwala na nic, dopóki jej nie zawęzisz.

Żadna wartość nigdy nie ma tego typu: funkcje, które zawsze rzucają wyjątek, i unie, w których nic nie zostało.

Wartość zwracana, którą należy zignorować. To nie to samo co undefined.

Dowolna wartość nieprymitywna: obiekty, tablice i funkcje.

Tablica

string[] i Array<string> oznaczają to samo.

Tablica readonly

To samo co ReadonlyArray<number>. push i inne metody modyfikujące są usunięte.

Krotka (tuple)

Stała długość z typem dla każdej pozycji. Elementy opcjonalne idą na koniec: [number, number?].

W przeciwieństwie do większości składni TypeScript tworzy prawdziwy obiekt w czasie działania.

Typ obiektowy

Opisuje właściwości inline. Nazwij go przez type lub interface, aby użyć ponownie.

Typ funkcji

Typy parametrów i wartości zwracanej. Lepszy niż luźny typ Function.

Typ literałowy

Dokładne wartości zamiast całego prymitywu.

Unia

Jeden z kilku typów. Przed użyciem elementów zawęź przez typeof, in lub wspólne pole.

Przecięcie

Wszystkie typy naraz. Używane głównie do łączenia typów obiektowych.

Prymitywy

Specjalne

Struktury

Kombinacje

Przeszukiwalne zestawienie typów

Szukaj typów

unknown, tuple, null...

Filtruj według grupy

Wszystkie

Wyświetlono {n} z {v} typów

Żaden typ nie pasuje do wyszukiwania.

Typy TypeScript z przykładami

Typ

Grupa

Przykład

Uwaga

Zacznij za darmo · Bez karty kredytowej

Powiązane: Poradniki

Produkt

Dla kogo

Funkcje

Zasoby

Firma

Mapa strony