Что значит [number] в ts?

В 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 представляет тип индексированного массива или словаря, где ключами являются числа.