既然typescript 2.0 RC(甚至是beta?)可以使用数字文字类型,如type t = 1 | 2;
。是否可以将类型限制在数字范围内,例如0-255,没有写出256个数字的类型?是否可以将数字限制在一定范围内
在我的情况,出库接受的颜色值从0-255的调色板,我宁愿只是仅举几例,但其限制在0-255:
const enum paletteColor {
someColor = 25,
someOtherColor = 133
}
declare function libraryFunc(color: paletteColor | 0-255); //would need to use 0|1|2|...
注:枚举定义一组名为** numeric **常量,而不是新类型。因此,声明可以传递数字而不是'paletteColor's是不必要的。 –
@Burt_Harris true。还需要一种将枚举限制为0-255的方法。人们也可以使用索引器对象而不是枚举,虽然有点难看。无论哪种方式都不需要'|',如果它被限制在0-255或0-255之间,它应该在最好的情况下简单地称为“paletteColor”。 – ASDFGerte
注意:从TS 2.4起,现在允许字符串文字作为枚举值https://blogs.msdn.microsoft.com/typescript/2017/06/27/announcing-typescript-2-4/#string-enums –