type
- это простой способ обращения к различным свойствам и функциям, которые имеют значение. Они используются для анализа нашего кода на предмет ошибок.
В TypeScript мы можем указывать у переменной нужный нам тип данных с помощью : type
после объявления переменной. Это называется объявлением типа, или подписью типа.
Например:
let id: number = 5;
let firstname: string = 'Денис';
let hasDog: boolean = true;
let unit: number; // Объявление переменной без присваивания значения
unit = 5;
Однако в большинстве случаев, лучше не указывать тип явно, так как TypeScript автоматически присваивает тип переменной (вывод типа).
let id = 5; // TS знает, что это число
let firstname = 'danny'; // TS знает, что это строка
let hasDog = true; // TS знает, что это логическое значение
hasDog = 'yes'; // ERROR - TS выдаст ошибку
Также мы можем задать переменной объединенное значение. Объединенный тип - это переменная, которой можно присвоить более одного типа.
let age: string | number;
age = 26;
age = '26';
В TypeScript есть несколько типов данных (типы данных, которые представлены в JS не будут повторяться в этом списке):
- any: тип данных, который может принимать значения любого типа. Использование any обычно не рекомендуется, так как это уменьшает безопасность типов.
- void: тип данных, который обозначает отсутствие значения. Он используется для обозначения функций, которые не возвращают значения.
- tuple: тип данных, который представляет кортежи, то есть массивы с фиксированным числом элементов и известными типами.
- enum: тип данных, который позволяет создавать наборы именованных констант.
- never: тип данных, который обозначает недостижимость кода в функции. Он используется для функций, которые не завершаются нормально или генерируют исключения.
- unknown: тип данных, который похож на any, но более безопасен, так как TypeScript требует явного приведения типов перед использованием значения типа unknown.
- unionTypes: тип данных, который позволяет объединить несколько типов данных, чтобы переменная могла принимать значения любого из этих типов.
- intersectionTypes: тип данных, который позволяет объединить два или более типов данных в один тип, который содержит свойства и методы из всех этих типов.
type-annotations (аннотация типов)
- код, который мы добавляем для typescript , чтобы он понял, значения какого типа будут содержаться в переменной.
type-inference (вывод типов)
- typescript пытается сам определить, значения какого типа будут содержаться в переменной.