Я хочу создать type
, в котором массив имеет минимальную длину N. Я просмотрел это Массив TypeScript с минимальной длиной, но когда N велико, я не хочу записывать тип от 0 до N, например :
type ArrayTwoOrMore<T> = {
0: T
1: T
...
N: T
}
Мне было интересно, есть ли способ сделать это более аккуратно?
1 ответ
Вы не можете задать произвольный размер кортежа, но в 4.0 вы сможете создать такой тип, как Typle5
или Tuple10
, и распределить его несколько раз, чтобы быстрее добраться до желаемого типа:
type Tuple5<T> = [T, T, T, T, T]
type Tuple10<T> = [...Tuple5<T>, ...Tuple5<T>]
type Tuple50<T> = [...Tuple10<T>, ...Tuple10<T>, ...Tuple10<T>, ...Tuple10<T>, ...Tuple10<T>]
type Tuple100<T> = [...Tuple50<T>, ...Tuple50<T>]
let a: Tuple100<number> = [] // Source has 0 element(s) but target requires 100
Я бы поставил под сомнение разумность создания кортежа размером 100.
ПРИМЕЧАНИЕ: версия 4.0 все еще находится в стадии бета-тестирования и должна быть выпущена в августе 2020 года.
Похожие вопросы
Связанные вопросы
Новые вопросы
typescript
TypeScript — это типизированный надмножество JavaScript, транспилируемое в обычный JavaScript. Он добавляет в JavaScript необязательные типы, классы, интерфейсы и модули. Этот тег предназначен для вопросов, специфичных для TypeScript. Он не используется для общих вопросов по JavaScript.