Asercje typów
Część sekcji Wprowadzenie do TypeScript ścieżki JavaScript w Coddy. Lekcja 68 z 73.
Czasami TypeScript nie ma wystarczających informacji, aby określić dokładny typ wartości, ale Ty jako programista wiesz więcej o tym, czym ta wartość tak naprawdę jest. Asercje typów pozwalają powiedzieć TypeScriptowi: „zaufaj mi, wiem, że ta wartość ma określony typ”.
TypeScript udostępnia dwie składnie asercji typów. Składnia as jest częściej stosowanym podejściem:
let data: unknown = '{"name": "John", "age": 30}';
let user = data as string;Możesz też użyć składni z nawiasami ostrymi, choć jest ona mniej popularna we współczesnym TypeScript:
let data: unknown = '{"name": "John", "age": 30}';
let user = <string>data;Wyzwanie
ŁatwyUtwórz funkcję, która przetwarza dane z symulacji zewnętrznego API. Będziesz pracować z wartościami typu unknown i używać asercji typów, aby bezpiecznie uzyskiwać dostęp do ich właściwości.
Utwórz zmienną apiResponse typu unknown i przypisz jej następujący ciąg JSON:
{"userId": 42, "username": "alice_dev", "isActive": true}Utwórz funkcję o nazwie processUserData, która:
- Przyjmuje parametr
datatypuunknown - Używa asercji typu, aby potraktować
datajakostring - Parsuje ciąg JSON za pomocą
JSON.parse() - Używa kolejnej asercji typu, aby potraktować sparsowany wynik jako obiekt o właściwościach
userId(number),username(string) iisActive(boolean) - Zwraca sformatowany ciąg:
"User [userId]: [username] (Active: [isActive])" - Ma jawnie określony typ zwracany
string
Utwórz dodatkowe dane testowe:
- Utwórz
secondApiResponsetypuunknownz ciągiem JSON:{"userId": 15, "username": "bob_admin", "isActive": false} - Utwórz
thirdApiResponsetypuunknownz ciągiem JSON:{"userId": 99, "username": "charlie_user", "isActive": true}
Przetestuj swoją funkcję i wyświetl następujące wyniki:
- Wywołaj
processUserDatazapiResponsei wyświetl wynik - Wywołaj
processUserDatazsecondApiResponsei wyświetl wynik - Wywołaj
processUserDatazthirdApiResponsei wyświetl wynik
Spróbuj swoich sił
// Utwórz zmienne odpowiedzi API
const apiResponse: unknown = '{"userId": 42, "username": "alice_dev", "isActive": true}';
const secondApiResponse: unknown = '{"userId": 15, "username": "bob_admin", "isActive": false}';
const thirdApiResponse: unknown = '{"userId": 99, "username": "charlie_user", "isActive": true}';
// TODO: Utwórz tutaj funkcję processUserData
// Przetestuj funkcję i wypisz wyniki
console.log(processUserData(apiResponse));
console.log(processUserData(secondApiResponse));
console.log(processUserData(thirdApiResponse));Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Wprowadzenie do TypeScript
1Pierwsze kroki z TS
Czym jest TypeScript?Dlaczego warto używać TypeScript?Twój pierwszy kod w TypeScriptProces kompilacji i błędyPodsumowanie: wprowadzenie do TS4Praca z funkcjami
Typowanie parametrów i wartości zwracanychTypowanie funkcji strzałkowychTyp zwracany „void”Opcjonalne parametry z „?”Domyślne wartości parametrówTypowanie parametrów restDefiniowanie typów funkcjiPodsumowanie: tworzenie typowanych funkcji2Podstawowe typy
Podstawowe typy: str, num, booleanTyp „any”: furtka awaryjnaTyp „unknown”Praca z „null” i „undef”Wnioskowanie o typach w praktyceJawne adnotacje typówPowtórka: ćwiczenia z podstawowych typów5Typy: aliasy, unie i przecięcia
Aliasy typów prostychTypy unii („|”)Praca z typami uniiTypy literałoweTypy przecięć („&”)Łączenie aliasów typówPodsumowanie: zaawansowane kombinacje typów8Typy wyliczeniowe
Czym jest wyliczenie liczbowe?Używanie wyliczeń liczbowychCzym jest wyliczenie tekstowe?Używanie wyliczeń tekstowychWyliczenia heterogenicznePodsumowanie: używanie typów wyliczeniowych11Zaawansowane zagadnienia
Asercje typówStrażnicy typów: in i instanceofTyp 'never'Typy dopuszczające null ('strictNull')Sygnatury indeksowe dla obiektówPodsumowanie: precyzyjne dostrajanie typów3Struktury danych: tablice i krotki
Tablice typowaneModyfikator "readonly" dla tablicCzym jest krotka?Deklarowanie i uzyskiwanie dostępu do krotekDestrukturyzacja krotekKrotki tylko do odczytuWielowymiarowe tablice typowaneOperator spread w tablicachPodsumowanie: tablice i krotkiPoćwicz samodzielnie: Edytor online TypeScript