TypeScript Essentials

Урок 03 · 10 хв

Об'єкти, optional, readonly

Форма об'єкта — основний контракт у застосунку.

Майже весь прикладний TS — опис об'єктів: які поля є, які можна не писати, які не можна перезаписати. Handbook розбирає це в Object Types. Нижче — те, на чому зазвичай спотикаються в робочому коді.

TypeScript структурний: важлива форма, а не ім'я типу. Якщо в значення є потрібні поля, воно підійде, навіть якщо тип називається інакше. Звідси й зайві поля у змінної — вони допустимі. Строга перевірка спрацьовує лише на свіжому літералі, щоб упіймати друкарську помилку на кшталт nme.

Форма
AI

Можна спитати про це правило«optional ≠ undefined у значенні»

AI

Можна спитати про цей пункт«Суть уроку»

Зайві поля

Excess property check

Це не баг. Свіжий літерал перевіряють строго, щоб упіймати друкарські помилки. Об'єкт зі змінної може мати зайві поля — структурна типізація.

Index signature — коли ключі заздалегідь невідомі

Для словника з відомим набором ключів краще Record<"ada" | "linus", number> або звичайний тип. Index signature надто широкий: будь-який рядковий ключ стане допустимим, і друкарська помилка в імені поля проскочить.

AI

Можна спитати про цей пункт«Зайві поля»

Перевірка

Закріпи, поки не пішов далі

  1. 1. Як безпечно взяти optional поле?