Skip to content

Commit 255b3f4

Browse files
committed
[2025-12-03] Czy wiesz, że TypeScript ma typ bezpieczniejszy niż Any? - poprawki
1 parent d2cd03d commit 255b3f4

3 files changed

Lines changed: 13 additions & 13 deletions

File tree

_posts/pl/2025-11-17-czy-wiesz-ze-typescript-ma-typ-bezpieczniejszy-niz-any.md renamed to _posts/pl/2025-12-03-czy-wiesz-ze-typescript-ma-typ-bezpieczniejszy-niz-any.md

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22
layout: post
33
title: Czy wiesz, że TypeScript ma typ bezpieczniejszy niż Any?
44
description: ""
5-
date: 2025-11-17T08:00:00+01:00
5+
date: 2025-12-03T08:00:00+01:00
66
published: true
77
didyouknow: false
88
lang: pl
99
author: wstolarski
10-
image: /assets/img/posts/2025-11-17-czy-wiesz-ze-typescript-ma-typ-bezpieczniejszy-niz-any/thumbnail.webp
10+
image: /assets/img/posts/2025-12-03-czy-wiesz-ze-typescript-ma-typ-bezpieczniejszy-niz-any/thumbnail.webp
1111
tags:
1212
- typescript
1313
---
@@ -16,10 +16,10 @@ W TypeScript, poza `string` czy `number`, mamy też kilka specjalnych typów do
1616

1717
## Any i unknown – podobieństwa i różnice
1818

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.
2020

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.
2323

2424
```typescript
2525
let drawer: any = "Old watch";
@@ -30,8 +30,8 @@ drawer = { keys: 3 };
3030
console.log(drawer.substring(6)); // TypeError: drawer.substring is not a function
3131
```
3232

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.
3535

3636
```typescript
3737
let box: unknown;
@@ -61,15 +61,15 @@ function fail(): never {
6161
return error("Something failed");
6262
}
6363
```
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.
6565

6666
#### Funkcja z nieskończoną pętlą
6767
```typescript
6868
function infiniteLoop(): never {
6969
while (true) {}
7070
}
7171
```
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.
7373

7474
#### Sprawdzanie kompletności obsługi wariantów (Exhaustive Check)
7575
```typescript
@@ -82,7 +82,7 @@ function getArea(shape: Shape): number {
8282
case 'square':
8383
return 4;
8484
default:
85-
// Jeśli dodasz nowy kształt, taki jak 'triangle',
85+
// Jeśli dodamy nowy kształt, taki jak 'triangle',
8686
// do typu, TypeScript wyświetli tutaj błąd,
8787
// ponieważ nowy kształt nie może być przypisany do never
8888
const exhaustiveCheck: never = shape;
@@ -93,9 +93,9 @@ function getArea(shape: Shape): number {
9393
Typ `never` świetnie pilnuje, czy switch obsługuje wszystkie warianty typu.
9494

9595
## 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.
9999

100100
## Dokumentacja
101101
- [TypeScript: any](https://www.typescriptlang.org/docs/handbook/basic-types.html#any)
Binary file not shown.
15.5 KB
Loading

0 commit comments

Comments
 (0)