Typescript 使用非';t出口
Typescript 使用非';t出口,typescript,Typescript,库是一个类型脚本模块。它导出一个函数someFunction,该函数是为一个非常特定的目的而设计的。它是用字符串调用的,该字符串必须是多个值之一 在库中,定义了某个函数,该函数具有一个接口,该接口断言其参数是多个字符串中的一个-“value1”|“value2”|……。不导出此接口 考虑以下最终用户代码,它将someFunction包装到另一个函数中: 从“库”导入{someFunction} 函数点(文本:字符串):void{ 某些函数({ 内容:正文, }) } Typescript抛出一
库
是一个类型脚本模块。它导出一个函数someFunction
,该函数是为一个非常特定的目的而设计的。它是用字符串调用的,该字符串必须是多个值之一
在库
中,定义了某个函数
,该函数具有一个接口,该接口断言其参数是多个字符串中的一个-“value1”|“value2”|……
。不导出此接口
考虑以下最终用户代码,它将someFunction
包装到另一个函数中:
从“库”导入{someFunction}
函数点(文本:字符串):void{
某些函数({
内容:正文,
})
}
Typescript抛出一个错误,正确地说,类型'string'
不能分配给类型'“value1”|“value2”|……
这里最好的解决方案是将doThing
的参数类型更改为someFunction
期望的类型。但是,类型非常长,不能保证版本之间的类型相同。我想导入它-但它被定义为接口上的属性,而该接口没有导出
如果不将text
的类型更改为any
,如何正确键入text
?您可以将条件类型与typeof
和查找类型一起使用
您的示例的解决方案
//假设
函数someFunction(arg:{content:'value1'|'value2'}){};
//如何获取内容类型'value1 | value2`
类型内容=参数[0]['Content'];
额外资源
我也有关于和的课程
// Assume
function someFunction(arg: { content: 'value1' | 'value2' }) { };
// How to get type of content `value1|value2`
type Content = Parameters<typeof someFunction>[0]['content'];