Как определить тип в TypeScript?

В TypeScript используется статическая типизация, что означает, что типы данных определяются на этапе компиляции. Определение типов позволяет выявить ошибки и допустить только корректное использование данных.

В TypeScript есть несколько способов определения типов:

1. Явное определение типа:
Можно определить тип переменной или функции явным образом с использованием двоеточия после имени сущности и указанием типа.

Примеры:

   let numberVariable: number = 5;
   
   function add(a: number, b: number): number {
     return a + b;
   }

2. Неявное определение типа:
TypeScript способен выводить типы автоматически на основе присваиваемых значений. Это называется "инференцией типов".

Примеры:

   let numberVariable = 5; // тип number
   
   let stringVariable = "Hello"; // тип string
   
   function multiply(a: number, b: number) {
     return a * b; // тип возвращаемого значения - number
   }

3. Использование интерфейсов:
Интерфейсы позволяют определять пользовательские типы, описывающие структуру объекта или тип данных.

Пример:

   interface Person {
     name: string;
     age: number;
   }
   
   let person: Person = {
     name: "John",
     age: 25
   };

4. Объединение типов:
TypeScript позволяет создавать союзы типов, что позволяет указывать, что значение может иметь один из нескольких типов.

Пример:

   let value: string | number = "Hello"; // значение может быть либо строкой, либо числом
   
   function processValue(value: string | number) {
     // обработка значения без необходимости проверять его тип перед использованием
   }

Это лишь несколько способов определения типов в TypeScript. Язык предлагает также более мощные концепции, такие как обобщенные типы (generics), перечисления (enums), типы-литералы (literal types) и другие, которые позволяют создавать более точные и гибкие типы для ваших программ.