自从typescript 2.0RC(甚至是beta?)以来可以使用数字文字类型,如type t = 1 | 2;.是否可以将类型限制为数字范围,例如0-255,而不在类型中写入256个数字?

在我的例子中,库接受0-255之间调色板的 colored颜色 值,我只想列举一些,但将其限制为0-255:

const enum paletteColor {
  someColor = 25,
  someOtherColor = 133
}
declare function libraryFunc(color: paletteColor | 0-255); //would need to use 0|1|2|...

推荐答案

不,这是不可能的.这种精确的类型约束在typescript中是不可用的(还没有?)

只有运行时判断/断言才能实现:(

Typescript相关问答推荐

如何在TypScript中使参数类型化但可选

如何获取数组所有可能的索引作为数字联合类型?

ReturnType此索引方法与点表示法之间的差异

有没有办法适当缩小类型?

TypScript如何在 struct 上定义基元类型?

更新:Typescript实用程序函数合并对象键路径

typescribe不能使用值来索引对象类型,该对象类型满足具有该值的另一个类型'

如何在typescript中设置对象分配时的键类型和值类型

为什么我的条件类型不能像我预期的那样工作?

在数据加载后,如何使用NgFor在使用异步管道的可观测对象上生成子组件?

如何使用Geojson模块和@Types/Geojson类型解析TypeScrip中的GeoJSON?

为什么&;(交集)运算符会删除不相交的属性?

为什么我的查询钩子返回的结果与浏览器的网络选项卡中看到的结果不同?

react 路由不响应参数

两个名称不同的相同打字界面-如何使其干燥/避免重复?

在打印脚本中将对象类型转换为数组

使用RXJS获取数据的3种不同REST API

使用泛型以自引用方式静态键入记录的键

仅当定义了值时才按值筛选数组

JSX.Element';不可分配给类型';ReactNode';React功能HOC