В TypeScript одной из основных особенностей является возможность типизации значений. Типизация позволяет указать, какой тип данных может содержаться в переменной, параметре функции, возвращаемом значении функции и других местах в коде.
Существует несколько способов типизации значений в TypeScript, которые обеспечивают статическую проверку типов.
1. Аннотация типа:
Аннотация типа происходит путем явного указания типа значения с использованием синтаксиса :
после имени переменной или параметра функции, а затем указания типа. Например, для типизации числового значения:
let num: number = 10;
В этом примере переменная num
типизирована как number
.
2. Вывод типа:
В TypeScript также есть возможность автоматического вывода типа, основываясь на значении, которое присваивается переменной. Например, если мы назначим переменной число, TypeScript автоматически назначит ей тип number
:
let num = 10; // тип num автоматически определен как number
3. Интерфейсы и типы:
TypeScript позволяет определять пользовательские типы с помощью интерфейсов и типов. Интерфейс позволяет определить структуру объекта, указывая типы свойств и методов. Типы же могут использоваться для определения пользовательских типов данных. Например:
interface Person { name: string; age: number; } let person: Person = { name: "John", age: 25 };
В этом примере мы определили интерфейс Person
, который указывает, что объект person
должен иметь свойства name
и age
, соответствующие типам string
и number
.
4. Объединение и пересечение типов:
TypeScript позволяет объединять типы с помощью оператора |
и создавать пересечение типов с помощью оператора &
. Объединение типа позволяет переменным принимать значения разных типов, пересечение типов позволяет переменным принимать значения, являющиеся общими для двух типов. Примеры:
let strOrNum: string | number = "Hello"; let numOrBool: number & boolean = 10; // такой тип совершенно бессмысленный, но возможен strOrNum = 5; // допустимо strOrNum = true; // недопустимо, так как boolean не является типом string или number
Это основные способы типизации значений в TypeScript. Типизация позволяет обнаружить ошибки в рантайме, а также улучшает подсказки IDE, делая код более понятным и безопасным.