НАЙКРАЩИЙ САЙТ ДЛЯ ВЕБ-РОЗРОБНИКІВ
TypeScript. Уроки для початківців

En Es De

TypeScript Типи об’єктів


TypeScript має спеціальний синтаксис для введення об’єктів.

Докладніше про об’єкти читайте в розділі JavaScript Об’єкти на нашому сайті W3Schools українською.


Приклад

const car: { type: string, model: string, year: number } = {
  type: "Toyota",
  model: "Corolla",
  year: 2009
};
Спробуйте самі »

Подібні типи об’єктів також можна писати окремо та навіть повторно використовувати. Подивіться розділ інтерфейси, щоб дізнатися більше.


Виведення типів

TypeScript може визначити типи властивостей на основі їхніх значень.

Приклад

const car = {
  type: "Toyota",
};
car.type = "Ford"; // no error
car.type = 2; // Помилка: тип 'number' не можна призначити типу 'string'.
Спробуйте самі »

Додаткові властивості

Необов’язкові властивості – це властивості, які не потрібно визначати у визначенні об’єкта.

Приклад без необов’язкової властивості

const car: { type: string, mileage: number } = { // Помилка: властивість 'mileage' відсутня в типі '{ type: string; }' але потрібна в типі '{ type: string; mileage: number; }'.
  type: "Toyota",
};
car.mileage = 2000;

Приклад із необов’язковою властивістю

const car: { type: string, mileage?: number } = { // немає помилки
  type: "Toyota"
};
car.mileage = 2000;
Спробуйте самі »

Підписи індексів

Підписи індексів можна використовувати для об’єктів без визначеного списку властивостей.

Приклад

const nameAgeMap: { [index: string]: number } = {};
nameAgeMap.Jack = 25; // немає помилки
nameAgeMap.Mark = "Fifty"; // Помилка: тип 'string' не можна призначити типу 'number'.
Спробуйте самі »

Сигнатури індексів, подібні до цієї, також можна виразити за допомогою таких типів утиліт, як Record<string, number>.

Дізнайтеся більше про такі типи утиліт, як цей, у розділі Типи утиліт TypeScript.


TypeScript Вправи

Перевірте себе за допомогою вправ

Вправа:

Додайте правильні типи для об’єкта нижче:

const car: { type: , model: , year:  } = {
type: "Toyota",
model: "Corolla",
year: 2009
};
    



Коментарі