Pytania rekrutacyjne TypeScript (Middle) z odpowiedziami
75 pytań na rozmowę rekrutacyjną z tematu TypeScript (Middle) - z poprawnymi odpowiedziami, wyjaśnieniami i linkami do dokumentacji.
Rozwiąż ten test- 1.Czym jest type guard zdefiniowany przez użytkownika?
- 2.Jak zagwarantować, że
switchobsłużył wszystkie człony unii? - 3.Co oznacza
<T extends { id: string }>w generyku? - 4.Jak otypować
getProp(obj, key), by wynik zależał od klucza? - 5.Czym jest typ mapowany (mapped type)?
- 6.Co robi typ warunkowy
T extends string ? 'text' : 'other'? - 7.Co robi
inferwtype ElementType<T> = T extends (infer U)[] ? U : never? - 8.Co zwraca
Awaited<Promise<Promise<number>>>? - 9.Czym
Exclude<T, U>różni się odOmit<T, K>? - 10.Jak działają przeciążenia funkcji w TypeScript?
- 11.Czym jest declaration merging?
- 12.Do czego służy klasa abstrakcyjna?
- 13.Czym
protectedróżni się odprivatew klasach TypeScript? - 14.Co robi operator
satisfies? - 15.Czym są template literal types?
- 16.Dlaczego zamiast
enumczęsto używa się obiektu zas const? - 17.Czym
const enumróżni się od zwykłegoenum? - 18.Czym przestrzenie nazw (
namespace) różnią się od modułów ES? - 19.Czym jest funkcja asercji (assertion function)?
- 20.Jak pobrać propsy natywnego przycisku, by rozszerzyć je w swoim komponencie?
- 21.Jak otypować hooki Redux Toolkit w aplikacji TypeScript?
- 22.Jak otypować generyczny komponent listy?
- 23.Co da
Extract<'a' | 'b' | 1 | 2, string>? - 24.Co zwraca
NonNullable<string | null | undefined>? - 25.Czym różnią się jako typy
object,{}iRecord<string, unknown>? - 26.Jak TypeScript traktuje operator
inprzy zawężaniu? - 27.Co robią
-readonlyi-?w typie mapowanym? - 28.Jak zmienić nazwy kluczy w typie mapowanym?
- 29.Dlaczego
Object.keys(user)zwracastring[], a nie(keyof User)[]? - 30.Co daje flaga
noUncheckedIndexedAccess? - 31.Czym
unknown[]różni się odany[]w parametrze funkcji? - 32.Czym są dekoratory w TypeScript 5?
- 33.Co robi
import type { User } from './types'? - 34.Dlaczego do rozszerzania dużych typów obiektowych
interfacejest lepszy niż przecięcie? - 35.Co zwraca
Parameters<(a: string, b?: number) => void>? - 36.Jak określić typ
thisdla funkcji-handlera? - 37.Jak najlepiej otypować odpowiedź API, której struktura różni się w zależności od statusu?
- 38.Co robi narzędzie
ReadonlyArray<T>(lubreadonly T[])? - 39.Czym jest
unique symbol? - 40.Jak rozszerzyć typ globalnego obiektu
Windowz modułu? - 41.Jak bezpiecznie otypować wynik
JSON.parse? - 42.Czym
type A = Bróżni się odinterface A extends B {}w podpowiedziach IDE? - 43.Co daje
pathswtsconfig.json? - 44.Czym
moduleResolution: 'bundler'różni się od'node16'/'nodenext'? - 45.Co robi flaga
isolatedModules? - 46.Co robi
keyof typeof obj? - 47.Kiedy TS rozszerza typ literalny do ogólnego?
- 48.Jak uczynić parametr generyczny opcjonalnym z wartością domyślną?
- 49.Jak otypować funkcję-fabrykę, która zwraca ten sam typ, który otrzymała?
- 50.Czym jest typowanie kontekstowe (contextual typing)?
- 51.Dlaczego
Omit<Circle | Square, 'id'>traci unię dyskryminowaną? - 52.Co daje
as const satisfies Record<string, Route>dla obiektu konfiguracji? - 53.Kiedy parametr-unia jest lepszy od przeciążeń?
- 54.Czym są parameter properties i dlaczego to nie jest składnia „wymazywalna”?
- 55.Przed czym chronią słowo kluczowe
overrideinoImplicitOverride? - 56.Dlaczego
Readonly<Settings>może nie zapobiec takiej zmianie? - 57.Jak wyprowadzić typ TypeScript ze schematu Zod?
- 58.Co lintowanie z informacją o typach w typescript-eslint dodaje ponad
tsc? - 59.Jak współdzielić jedną ścisłą konfigurację bazową między wieloma pakietami?
- 60.Czym różnią się
targetilibwtsconfig.json? - 61.Co naprawia
esModuleInterop? - 62.Która opcja pozwala na
import config from './config.json'z otypowaną zawartością? - 63.Jak uzyskać typ instancji i argumenty konstruktora klasy?
- 64.Jak zawęzić wyniki
Promise.allSettled? - 65.Na co pozwalają wbudowane typy
Uppercase,Capitalizeitp.? - 66.Co wyłapują
noImplicitReturnsinoFallthroughCasesInSwitch? - 67.Jak otypować funkcję generatora?
- 68.Jak otypować generyczny hook do pobierania danych?
- 69.Kiedy
Map<K, V>jest lepszy od obiektu z sygnaturą indeksu? - 70.Co robią
types/typesVersionsi warunek"types"wexportsplikupackage.json? - 71.Co robi
export type * from './types'(TS 5.0+)? - 72.Jak opisać typ dla dowolnej wartości JSON?
- 73.Jak zaimplementować bezpieczny typowo event emitter?
- 74.Czy zawężanie działa, gdy unia dyskryminowana jest najpierw zdestrukturyzowana?
- 75.Co umożliwia zawężanie w
switch (true)(TS 5.3)?