我有这个功能:
function getProduct(id: string){
//return some product
}
其中id实际上是GUID。Typescript没有guid类型。是否可以手动创建类型GUID
?
function getProduct(id: GUID){
//return some product
}
因此,如果'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'
改为'notGuidbutJustString'
,那么我将看到类型脚本编译错误。
**更新:**正如大卫Sherret所说:没有办法在编译时确保基于正则表达式或某个其它函数的串值,但是有可能在运行时在一个地方进行所有检查。
4条答案
按热度按时间vxf3dgd41#
如果使用外部包不是问题,那么uuid npm package可以做到这一点。
6ie5vjzr2#
你可以创建一个字符串的 Package 器并传递它:
另一种方法是使用品牌:
mqkwyuun3#
我认为人们应该对大卫·谢雷特的回答做一点扩展。
就像这样:
nhhxz33t4#
我真的很喜欢@DavidSherret的更新版本,它使用了强类型原语的惯用方法,即通过品牌类型/标记联合类型(+1)。
通过为品牌添加一个类型参数来扩展它,甚至可以将ID绑定到特定的实体或对象类型(如OP问题中的“产品”):
打字机游戏场