是否有任何方法可以在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'輸入爲「無論'測試'返回」,而不必定義類型 –
因此您不能,因此稱爲「匿名類型」 - 它不能被命名(技術上,當你輸入一個類型文字時,你正在輸入一個與另一個匿名類型具有相同形狀的新匿名類型)。 –