Создайте кортеж типа из массива без "as const" - PullRequest
0 голосов
/ 25 октября 2019

Возможно ли преобразовать массив в типизированный кортеж только с помощью системы типов, например. не требуется использовать «as const»?

Пример. Вот как можно создать типизированный кортеж:

// has type = readonly [0, "string"]
const tuple = [0, "string"] as const;

Теперь из массива, отличного от const, можно создаватьтипизированный кортеж и сохранение порядка типов?

Примерно так:

// has type = (number | string)[]
const array = [0, "string"];

// has type = readonly [0, "string"]
const tuple = array as ToTuple<typeof array> ;

Где ToTuple будет утилитой типов, которая преобразует массив в типизированный кортеж.

...