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

En Es De

TypeScript Типи утиліт


TypeScript поставляється з великою кількістю типів, які можуть допомогти з деякими поширеними маніпуляціями з типами, які зазвичай називаються службовими типами.

Цей розділ охоплює найпопулярніші типи утиліт.


Partial

Partial змінює всі властивості в об’єкті на необов’язкові.

Приклад

interface Point {
  x: number;
  y: number;
}

let pointPart: Partial<Point> = {}; // `Partial` дозволяє x та y бути необов’язковими
pointPart.x = 10;
Спробуйте самі »

Required

Required змінює всі властивості в об’єкті на обов’язкові.

Приклад

interface Car {
  make: string;
  model: string;
  mileage?: number;
}

let myCar: Required<Car> = {
  make: 'Ford',
  model: 'Focus',
  mileage: 12000 // `Required` примусове визначення пробігу
};
Спробуйте самі »

Record

Record це ярлик для визначення типу об’єкта з певним типом ключа та типом значення.

Приклад

const nameAgeMap: Record<string, number> = {
  'Alice': 21,
  'Bob': 25
};
Спробуйте самі »

Record<string, number> еквівалентно { [key: string]: number }


Omit

Omit видаляє ключі з типу об’єкта.

Приклад

interface Person {
  name: string;
  age: number;
  location?: string;
}

const bob: Omit<Person, 'age' | 'location'> = {
  name: 'Bob'
  // `Omit` вилучив age та location з типу, і їх тут неможливо визначити
};
Спробуйте самі »

Pick

Pick видаляє всі ключі, окрім вказаних, із типу об’єкта.

Приклад

interface Person {
  name: string;
  age: number;
  location?: string;
}

const bob: Pick<Person, 'name'> = {
  name: 'Bob'
  // `Pick` зберіг лише name, тому age і location було видалено з типу, і їх неможливо визначити тут
};
Спробуйте самі »

Exclude

Exclude видаляє типи з об’єднання.

Приклад

type Primitive = string | number | boolean
const value: Exclude<Primitive, string> = true; // тут не можна використовувати рядок, оскільки Exclude видалив його з типу.
Спробуйте самі »

ReturnType

ReturnType витягує тип повернення функції.

Приклад

type PointGenerator = () => { x: number; y: number; };
const point: ReturnType<PointGenerator> = {
  x: 10,
  y: 20
};
Спробуйте самі »

Parameters

Parameters витягує типи параметрів типу функції як масив.

Приклад

type PointPrinter = (p: { x: number; y: number; }) => void;
const point: Parameters<PointPrinter>[0] = {
  x: 10,
  y: 20
};
Спробуйте самі »

Readonly

Readonly використовується для створення нового типу, де всі властивості доступні лише для читання, тобто їх неможливо змінити після призначення значення.

Майте на увазі, що TypeScript запобігатиме цьому під час компіляції, але теоретично, оскільки його скомпільовано до JavaScript, ви все одно можете перевизначити властивість readonly.

Приклад

interface Person {
  name: string;
  age: number;
}
const person: Readonly<Person> = {
  name: "Dylan",
  age: 35,
};
person.name = 'Israel'; // prog.ts(11,8): error TS2540: Неможливо призначити 'name', оскільки це властивість лише для читання.
Спробуйте самі »

TypeScript Вправи

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

Вправа:

Оголосіть об’єкт kindPerson з інтерфейсу Person, де всі властивості є необов’язковими:

interface Person {
age: number;
firstName: string;
lastName: string;
}

let :  = {};



Коментарі