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'];