Есть ли способ динамически генерировать константное утверждение в typcript ?
Я знаю, что вы можете создать readonlyArray
утверждение на основе статически типизированного массива, например.
const staticTyped = [1, 2, 3] as const // readonly [1, 2, 3]
type TypeStatic = typeof staticTyped[number] // 1 | 2 | 3
Теперь все работает как положено и элегантно. Тем не менее, мне нужно создать большой массив только для чтения, который генерируется динамически.
const generateNumRange = (from: number, to: number): number[] => {
const arr = []
for (let i = from; i <= to; i++) {
arr.push(i)
}
return arr
}
const dynamicTyped = [...generateNumRange(0, 255)] as const // readonly number[]
type TypeDynamic = typeof dynamicTyped[number] // number (oof)
Теперь я понимаю, в чем проблема, однако я не могу придумать способ, который позволил бы мне верните dyanmicTyped
как [0, 1, 2, ..., 255]
вместо number[]
.
Есть ли способ сделать это / возможно даже более элегантное решение проблемы в целом?