是否有任何方法可以在TypeScript中引用推断类型?在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
}
这是一种解决方法,但它得到毛茸茸的,如果测试有其自身的参数。
function Thing(test = Test()) {} // thanks default parameter!
是否有某种方法来引用任何测试返回的推断类型?因此,我可以输入“无论测试返回”的东西,而无需创建界面?
我关心的原因是我通常使用闭包/模块模式而不是类。尽管您可以创建一个描述该类的接口,但Typescript已经可以让您将类型输入为类。我想输入一些东西,无论函数返回什么而不是一个类。有关更多信息,请参阅Closures in Typescript (Dependency Injection)。
解决此问题的最佳方法是如果TypeScript添加了abilty来定义将其依赖关系作为参数的模块,或者在闭包中定义模块。然后我可以使用漂亮的export
语法。任何人都知道是否有这样的计划?
我想要的主要事情是将'test'输入为“无论'测试'返回”,而不必定义类型 –
因此您不能,因此称为“匿名类型” - 它不能被命名(技术上,当你输入一个类型文字时,你正在输入一个与另一个匿名类型具有相同形状的新匿名类型)。 –