有没有办法在 TypeScript 中引用推断类型?
在下面的示例中,我们得到了很好的推断类型。
function Test() {
return {hello:"world"}
}
var test = Test()
test.hello // works
test.bob // 'bob' doesn't exist on inferred type
但是,如果我想定义一个接受类型参数的函数:“无论Test
返回什么”,而不显式定义接口,该怎么办?
function Thing(test:???) {
test.hello // works
test.bob // I want this to fail
}
这是一种解决方法,但如果 Test 有自己的参数,它会变得很麻烦。
function Thing(test = Test()) {} // thanks default parameter!
有什么方法可以引用任何 Test 返回的推断类型?所以我可以在不创建界面的情况下输入“Whatever Test returns”之类的内容?
我关心的原因是因为我通常使用闭包/模块模式而不是类。Typescript 已经允许您将某些内容作为类输入,即使您可以创建一个描述该类的接口。我想输入函数返回的东西而不是类。有关原因的更多信息,请参阅Typescript 中的闭包(依赖注入)。
解决这个问题的最佳方法是,如果 TypeScript 添加了定义将其依赖项作为参数的模块的能力,或者在闭包内定义模块。然后我可以使用漂亮的export
语法。有谁知道有没有这方面的计划?