有没有办法在TypeScript中引用一个推断类型?
在下面的示例中,我们得到了漂亮的推断类型。
这是一个解决方法,但如果Test有自己的参数,情况会变得复杂。
有没有一种方法可以引用Test返回的推断类型?这样我就可以将某些内容作为“Test返回的东西”进行类型标记,而不需要制定一个接口。
我的关注点在于,通常我使用闭包/模块模式而不是类。TypeScript已经允许您将某些内容标记为类,即使您可以创建描述该类的接口。我希望将某些内容标记为函数返回的任何内容,而不是一个类。请参见有关此问题的更多信息: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
}
这是一个解决方法,但如果Test有自己的参数,情况会变得复杂。
function Thing(test = Test()) {} // thanks default parameter!
有没有一种方法可以引用Test返回的推断类型?这样我就可以将某些内容作为“Test返回的东西”进行类型标记,而不需要制定一个接口。
我的关注点在于,通常我使用闭包/模块模式而不是类。TypeScript已经允许您将某些内容标记为类,即使您可以创建描述该类的接口。我希望将某些内容标记为函数返回的任何内容,而不是一个类。请参见有关此问题的更多信息:Typescript中的闭包(依赖注入)。
最好的解决方法是如果TypeScript添加了定义以参数形式获取其依赖项的模块的能力,或者在闭包内定义模块。那么我只需使用漂亮的
export
语法即可。是否有人知道是否有计划实现这个功能?
test
键入为“无论Test
返回什么”,而不必定义类型。 - Sean Clark Hess