
Урок 09 · 10 хв
any, unknown, never, as
Чотири слова, через які TS або допомагає, або бреше.
any вимикає перевірку. Одне any заражає все, чого торкається, — навіть поля, яких ти сам не чіпав. unknown — «не знаю, що це», доки не перевіриш: Handbook порівнює їх в any і далі в narrowing. never — «сюди виконання не має дійти». as — «повір мені».
JSON.parse у стандартній бібліотеці повертає any. Це історичний борг, а не рекомендація. Одразу клади результат в unknown і звужуй: type guard, zod або схема з бекенду. Інакше етикетка User нічого не варта.
satisfies з'явився в TS 4.9 і робить дві речі: перевіряє значення за типом і залишає об'єкту його власні ключі. Анотація : Record<string, string> перевірку дає, але ключі стирає — після неї wide.bgg компілюється. Зворотне теж правда: satisfies сам по собі літерал не зберігає, palette.bg тут string. Потрібен саме "#0c0c0b" — пиши as const satisfies Record<string, string>. Детальніше — у release notes 4.9.
- any — чому одне any роз'їдає сусідній код
- never — гілка, у яку не можна потрапити
- Type Assertions — що робить
asі чого не робить
Перевірка
Закріпи, поки не пішов далі
1. Який тип у
JSON.parse(raw)?2. Що робить
value as User?