You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -16,10 +16,10 @@ W TypeScript, poza `string` czy `number`, mamy też kilka specjalnych typów do
16
16
17
17
## Any i unknown – podobieństwa i różnice
18
18
19
-
Na pierwszy rzut oka typy `any` i `unknown` wyglądają podobnie. Oba pozwalają przypisać do siebie dowolną wartość. To, co możesz potem z tym zrobić, nieco się różni.
19
+
Na pierwszy rzut oka typy `any` i `unknown` wyglądają podobnie. Oba pozwalają przypisać do siebie dowolną wartość. To, co możemy potem z tym zrobić, nieco się różni.
20
20
21
-
### Typ any – "nie wiem i nie interesuje mnie to"
22
-
Typ `any` wyłącza sprawdzanie typów dla danej zmiennej w TypeScript. Kompilator nie sprawdza, co przypisujesz i jak używasz tej zmiennej. Możesz zrobić z nią wszystko, a ewentualny błąd zobaczysz dopiero w trakcie działania aplikacji.
21
+
### Typ any – "nie wiemy i nie interesuje nas to"
22
+
Typ `any` wyłącza sprawdzanie typów dla danej zmiennej w TypeScript. Kompilator nie sprawdza, co przypisujemy i jak używamy tej zmiennej. Możemy zrobić z nią wszystko, a ewentualny błąd zobaczymy dopiero w trakcie działania aplikacji.
23
23
24
24
```typescript
25
25
let drawer:any="Old watch";
@@ -30,8 +30,8 @@ drawer = { keys: 3 };
30
30
console.log(drawer.substring(6)); // TypeError: drawer.substring is not a function
31
31
```
32
32
33
-
### Typ unknown – "nie wiem, ale sprawdzę"
34
-
Typ `unknown` jest bezpieczniejszą alternatywą dla `any`. Możesz przypisać dowolną wartość, ale TypeScript wymaga, by przed użyciem sprawdzić typ tej zmiennej. Dzięki temu nie popełnisz błędu w runtime.
33
+
### Typ unknown – "nie wiemy, ale sprawdzimy"
34
+
Typ `unknown` jest bezpieczniejszą alternatywą dla `any`. Możemy przypisać dowolną wartość, ale TypeScript wymaga, by przed użyciem sprawdzić typ tej zmiennej. Dzięki temu nie popełnimy błędu w runtime.
35
35
36
36
```typescript
37
37
let box:unknown;
@@ -61,15 +61,15 @@ function fail(): never {
61
61
returnerror("Something failed");
62
62
}
63
63
```
64
-
Funkcja `error()` nigdy nie zwróci wartości. Zawsze zatrzyma program, rzucając błędem
64
+
Funkcja `error()` nigdy nie zwraca wartości. Zawsze zatrzymuje program, rzucając błędem.
65
65
66
66
#### Funkcja z nieskończoną pętlą
67
67
```typescript
68
68
function infiniteLoop():never {
69
69
while (true) {}
70
70
}
71
71
```
72
-
Funkcja wpadnie w pętlę, z której nie ma wyjścia. Nigdy nie zakończy swojego działania.
72
+
Funkcja wpada w pętlę, z której nie ma wyjścia. Nigdy nie kończy swojego działania.
@@ -82,7 +82,7 @@ function getArea(shape: Shape): number {
82
82
case'square':
83
83
return4;
84
84
default:
85
-
// Jeśli dodasz nowy kształt, taki jak 'triangle',
85
+
// Jeśli dodamy nowy kształt, taki jak 'triangle',
86
86
// do typu, TypeScript wyświetli tutaj błąd,
87
87
// ponieważ nowy kształt nie może być przypisany do never
88
88
const exhaustiveCheck:never=shape;
@@ -93,9 +93,9 @@ function getArea(shape: Shape): number {
93
93
Typ `never` świetnie pilnuje, czy switch obsługuje wszystkie warianty typu.
94
94
95
95
## Kiedy i co wybrać?
96
-
-**unknown** – używaj, gdy nie znasz typu danych (np. odpowiedź z API). To bezpieczny wybór, który wymusza weryfikację typu przed użyciem.
97
-
-**any** – najlepiej unikać`any` całkowicie. Wyłącza ono sprawdzanie typów, co jest głównym celem TypeScriptu. Włącz w konfiguracji tryb strict, a dla nieznanych typów stosuj bezpieczniejszy `unknown`.
98
-
-**never** – używaj, by zaznaczyć, że dany kod jest nieosiągalny. Świetne do funkcji rzucających błędy i do pilnowania kompletności switcha.
96
+
-**unknown** – używajmy, gdy nie znamy typu danych (np. odpowiedź z API). To bezpieczny wybór, który wymusza weryfikację typu przed użyciem.
97
+
-**any** – najlepiej unikajmy`any` całkowicie. Wyłącza ono sprawdzanie typów, co jest głównym celem TypeScriptu. Włączmy w konfiguracji tryb `strict`, a dla nieznanych typów stosujmy bezpieczniejszy `unknown`.
98
+
-**never** – używajmy, by zaznaczyć, że dany kod jest nieosiągalny. Świetne do funkcji rzucających błędy i do pilnowania kompletności switcha.
0 commit comments