Junior
104
questionbank
Какие типы данных поддерживаются в TypeScript?
AI答案
sobes.tech AI
TypeScript поддерживает следующие типы данных:
-
Примитивные типы:
boolean: логический тип (true/false).number: числа (целые и с плавающей точкой).string: строковые значения.null: специальный литерал, обозначающий отсутствие значения.undefined: значение, которое присваивается переменным, которым не было присвоено значение явно.symbol: уникальный неизменяемый примитивный тип, используемый в качестве ключей свойств объекта.bigint: целые числа произвольной точности.
-
Типы объектов:
object: не примитивный тип, т.е. все что не является одним из примитивных типов.- Массивы:
Array<T>илиT[], гдеT— тип элементов массива. - Кортежи (Tuples): фиксированное количество элементов с возможно разными типами, например
[string, number].
-
Дополнительные типы:
any: тип, который может принимать любое значение. Используется, когда тип неизвестен или может меняться. Следует использовать с осторожностью.unknown: более безопасная альтернативаany. Значение с типомunknownнельзя использовать напрямую, его нужно сначала сузить до более конкретного типа.void: используется для функций, которые не возвращают никакого значения.never: тип, который представляет значения, которые никогда не произойдут. Используется для функций, которые выбрасывают исключение или содержат бесконечный цикл.enum: перечисления, позволяют задать именованные константные значения.
enum Color { Red, Green, Blue, } let c: Color = Color.Green;tuple: позволяет выразить массив с фиксированным количеством элементов, типы которых известны, но не обязательно совпадают.
let x: [string, number]; x = ["hello", 10]; // x = [10, "hello"]; // Errorunion: объединение типов с помощью оператора|. Переменная может иметь любой из перечисленных типов.
let myVariable: string | number; myVariable = "hello"; myVariable = 123;intersection: пересечение типов с помощью оператора&. Новый тип содержит свойства всех пересекающихся типов.
interface A { propA: string; } interface B { propB: number; } type C = A & B; let myObject: C = { propA: "test", propB: 42 };literal: позволяют указать точные значения, которые может принимать переменная.
type Direction = "up" | "down" | "left" | "right"; let move: Direction = "up";alias: синонимы для существующих типов.
type MyString = string; let greeting: MyString = "Hello";interface: структуры, определяющие контракт для объектов.
interface Point { x: number; y: number; } function printPoint(pt: Point) { console.log(`(${pt.x}, ${pt.y})`); }class: определения классов в соответствии со стандартами ECMAScript.
class Greeter { greeting: string; constructor(message: string) { this.greeting = message; } greet() { return "Hello, " + this.greeting; } }