问题
我想声明一个2的幂的类型,范围从1到2^30,如下所示:
declare type A = 1 | 2 | 4 | 8 | ... | 1073741824
但我不想写太多数字.
有没有什么简单的办法?
try
我try 声明一个类型帮助器来初始化一个从0到9的10个数字的类型,如下所示:
type FlagHelper<N extends number, R extends number[] = []> =
R['length'] extends N
? R[number]
: FlagHelper<N, [...R, R['length']]>
type A = FlagHelper<10>
// type A = 0 | 1 | 2 | 3 | ... | 9
so i just only change :FlagHelper<N, [...R, R['length']]
to :FlagHelper<N, [...R, 1 << R['length']]
can feed my need.
but TypeScript type definition do not support any operators like +,-,*,<<
etc.