В TypeScript, квадратные скобки [ ]
используются для задания типа "индексированного типа". Когда вы определяете переменную или параметр функции с типом [number]
, это означает, что вы ожидаете объект, который может быть индексирован числами.
Индексированные типы позволяют вам создавать объекты, которые выглядят и ведут себя подобно массивам или словарям, где вы можете обращаться к элементам объекта по ключу. В данном случае, ключами являются числа.
Например, рассмотрим следующий тип:
let myArray: [number] = [1, 2, 3];
Здесь мы определяем переменную myArray
со значением типа [number]
, и инициализируем ее с набором числовых значений [1, 2, 3]
. Теперь мы можем обратиться к элементам myArray
по их индексу, который должен быть числовым:
let firstElement = myArray[0]; // значение: 1 let secondElement = myArray[1]; // значение: 2
Компилятор TypeScript будет строго проверять типы, поэтому попытка обратиться к элементу myArray
с неправильным типом ключа (например, строка вместо числа) вызовет ошибку на этапе компиляции.
Индексированные типы также могут использоваться в качестве типов для объектов. Например:
interface MyDictionary { [key: number]: string; } let myDictionary: MyDictionary = { 1: 'one', 2: 'two', 3: 'three' }; let value = myDictionary[2]; // значение: 'two'
Здесь мы создаем интерфейс MyDictionary
, где ключами должны быть числа, а значениям — строки. Мы определяем переменную myDictionary
с этим типом и инициализируем ее объектом { 1: 'one', 2: 'two', 3: 'three' }
. Когда мы обращаемся к элементу myDictionary
по ключу, мы получаем соответствующее значение.
Таким образом, [number]
в TypeScript представляет тип индексированного массива или словаря, где ключами являются числа.