Operatory
typeof
Most od wartości do jej typu.
Czym jest
Typy i wartości mieszkają w osobnych przestrzeniach nazw, a `typeof` to jedyne przejście w jedną stronę. W pozycji typu znaczy „typ tej wartości”, co nie ma związku z javascriptowym `typeof` zwracającym tekst w czasie wykonania — ta sama pisownia, inne światy i jeden z niewielu prawdziwych kalamburów w języku.
Przykłady
typeof config→{ retries: number; url: string; }typeof send→(to: string) => voidkeyof typeof config
→"retries" | "url"Zestawienie, które będziesz pisać najczęściej: przejdź do świata typów, a potem weź klucze.
Każdy rozwinięty typ powyżej wypisał TypeScript 5.9.3, nie ręka człowieka.
Czego nie robi
- Nie przyjmuje wyrażenia. `typeof foo.bar` działa, bo to odwołanie; `typeof foo()` nie, bo wywołanie czegoś nie jest wartością, którą da się nazwać.
- Nie zawęża. `typeof` w pozycji typu czyta typ zadeklarowany, a nie to, do czego zmienna została zawężona w danym wierszu.
Wniosek
Gdy typ jest już doskonale opisany przez wartość, którą masz, nie pisz go po raz drugi. `typeof` nie pozwala im się rozjechać.