Typy danych w TypeScript
W TypeScript istnieje kilka wbudowanych typów danych, które służą do określania rodzaju przechowywanych wartości. Typy te dzielimy na typy proste (prymitywne) i typy obiektowe.
- Typy proste (prymitywne):
number – reprezentuje liczby, zarówno całkowite, jak i zmiennoprzecinkowe. Przykłady:
let x: number = 25;
let y: number = -30.5;Przykładowe wartości:
0.000125-5090000000
string – reprezentuje tekst. Może zawierać pojedyncze, podwójne lub backtickowe cudzysłowy. Przykłady:
let greeting: string = "Witaj";
let farewell: string = 'Do zobaczenia';
let sentence: string = `Dzisiaj jest poniedziałek`;
Przykładowe wartości:
'hi there'""'Today is Monday'
boolean – typ logiczny, przyjmuje wartości true lub false. Przykłady:
let isActive: boolean = true;
let isCompleted: boolean = false;Przykładowe wartości:
truefalse
symbol – unikalne wartości, które mogą służyć jako identyfikatory obiektów.
null i undefined – specjalne typy oznaczające brak wartości. Wartość null oznacza zamierzone nieistnienie wartości, a undefined brak przypisania wartości do zmiennej.
Typy obiektowe:
object – służy do definiowania złożonych struktur, takich jak obiekty, klasy lub instancje.
let user: { id: number, name: string } = { id: 1, name: "Anna" };array – reprezentuje listę wartości tego samego typu.
let numbers: number[] = [1, 2, 3, 4, 5];
Date – typ służący do przechowywania dat i godzin.
let today: Date = new Date();
Przykładowe wartości:
new Date()
Typy złożone użytkownika (np. Todo):
let task: { id: number, completed: boolean, title: string } = { id: 1, completed: true, title: "Trash" };
{ id: 1, completed: true, title: „Trash” }
Dlaczego używamy typów?
Typy w TypeScript pełnią kluczową rolę w analizie naszego kodu i pomagają w jego poprawnym działaniu. Jak wynika z jednego z obrazków:
- Typy są używane przez kompilator TypeScript do analizowania kodu pod kątem błędów. Dzięki nim kompilator może sprawdzić, czy przekazywane wartości są zgodne z oczekiwanymi typami, co zmniejsza ryzyko wystąpienia błędów podczas działania aplikacji.
- Typy umożliwiają innym programistom zrozumienie przepływu wartości w kodzie. Dzięki adnotacjom typów, struktura kodu staje się bardziej czytelna i przewidywalna, co ułatwia współpracę w zespołach.
Jak i gdzie używamy typów?
- Typy są stosowane wszędzie, gdzie definiujemy zmienne, funkcje, obiekty czy tablice. Przykłady:
Typowanie zmiennych:
let name: string = "Jan";
let age: number = 30;
let isAdmin: boolean = false;
Typowanie funkcji
function greet(name: string): string {
return `Hello, ${name}`;
}
Typowanie tablic:
let scores: number[] = [85, 90, 78];Typowanie obiektów:
let user: { id: number, name: string, active: boolean } = { id: 1, name: "Anna", active: true };Typy złożone w TypeScript
TypeScript pozwala na tworzenie bardziej złożonych typów, które są kombinacjami innych typów. Możemy definiować typy użytkownika (np. Todo), używać typów unii (string | number), typów zagnieżdżonych (np. tablice obiektów) oraz typów generycznych.
Przykład użycia typów złożonych:
type Todo = {
id: number;
title: string;
completed: boolean;
};
let task: Todo = { id: 1, title: "Umyj naczynia", completed: false };
Typy prymitywne vs obiektowe
Na jednej z grafik przedstawiono różnicę między typami prymitywnymi a obiektowymi:
- Typy prymitywne obejmują:
number,string,boolean,symbol,null,undefined,void. - Typy obiektowe obejmują:
array,object,class,function.
Każdy z tych typów ma swoje specyficzne zastosowania, a rozróżnienie między nimi jest istotne podczas projektowania aplikacji w TypeScript.