Skip to main content

Типизация

Типизация переменных с примитивнымим типами данных.

const a: string = 'Some string';  // string
const b: number = 123; // number
const c: boolean = true; // boolean
const d: null = null; // null
const e: undefined = undefined; // undefined
const f: Date = new Date(); // дата
const g: symbol; // символ
const z: Error = new Error(); // Error

Операторы & и |

type A = {
name: string;
age: number;
}

type B = {
city: string;
index: number;
}

// ИЛИ
const a: A | B = {
name: 'John',
age: 35,
}


// И
const ab: A & B = {
name: 'John',
age: 35,
city: 'NY',
index: 10001,
}

Специальные значения

const a: any;         // любой тип
const b: unknown; // неизвестный тип
const c: () => any; // функция, которая может вернуть любой тип
const d: () => void; // функция, которая ничего не возвращает
const e: () => never; // функция может никогда не закончиться и не вернуть результат

Строгие значения

Можно использовать enum, а можно указать все возможные значения через ИЛИ.

const a: 1 | 2 = 1;
const b: 'a' | 'b' = 'a';

Игнорирование TypeScript

// @ts-ignore
const a = b.c;

as const

const routes = {
home: '/',
about: '/about',
help: '/help',
};

// can change
routes.faq = '/faq';
const routes = {
home: '/',
about: '/about',
help: '/help',
} as const;

// can not change!
routes.faq = '/faq'; // TS ERROR