我正在爲一組應用程序特定的API創建一些智能感知,並且好奇它是否可以將回調函數的參數定義爲先前定義的接口?我擔心我甚至不能正確地問這個問題,所以我只會告訴你代碼。是否可以將回調函數參數定義爲命名空間接口?
我有一個包含打字稿定義的intellisense的絕對類型的文件。它相當長,所以我只會顯示相關的內容。
declare interface N_search {
create: {
(options: {
type: string
}): N_search.Search
}
declare namespace N_search {
interface Search {
run(): N_search.ResultSet
}
interface Result {
type: string
id: number
}
interface ResultSet {
each: {
(callback (N_search.Result)) : void //aware this is not correct...
}
可能很難從那個混亂中收集,但ResultSet接口內部的(回調)是一個函數。該函數的參數是一個N_search.Result對象,我希望intellisense顯示這一點。這是我期待獲得智能感知的JavaScript。
var search = N_search.create(options);
search.run().each(function (result) {
result. /* I want intellisense here to show the N_search.Result object
which should be type: string ; id: number */
});
我希望我的問題有道理,我非常感謝任何幫助!
不'回調=()=> N_search.Result'不行? – Daryl