← Wszystkie tematy

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