Typy w TypeScript

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.

  1. 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
  • -50
  • 90000000

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:

  • true
  • false

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.