[英]Custom interface TypeScript
我將鍵入以獲取自定義TypeScript接口:
export type CreateActions<T> = T;
所以我可以做類似的事情:
const actionCreators = {
add: null,
remove: null
}
const { creators }: { creators: CreateActions<ActionCreators> } = createActions('Jedi', actionCreators);
creators.add({ name: 'Yoda' });
所以我想讓TypeScript理解方法“ add”。
謝謝你的建議 !
這是游樂場
編輯 :
很難解釋,對不起。
我想要的是:我有一個帶有一些鍵的對象。 它的值是“空”或“對象”。
我想要一個采用這些鍵並為其生成方法的方法。
所以如果我有
const myObject = {
myKey: null,
otherKey: null,
}
我想要我的方法輸出:
{
myKey: () => ...,
otherKey: () => ...
}
因此,我想基於第一個對象添加TypeScript驗證。 該對象(在我的情況下為myObject)是未知的,其鍵可能會有所不同。
如果要在interface
屬性中包含函數,請聲明其類型為Function
。 另外,如果您在編譯時不知道它們將放置在什么鍵上,那么請注意TypeScript也將只能提供您所提供的盡可能多的信息。
我看到在您的示例中,您在創建對象后定義了這些函數,因此需要將它們聲明為可為空,這意味着添加| null
| null
表示它們可以為null
(因為它們處於初始狀態)。
這使得界面的最終代碼如下所示:
interface ActionCreators {
[key: string]: Function | null
}
這是您的案例的游樂場鏈接,例如,當嘗試分配功能以外的內容時,最后出現錯誤: 游樂場鏈接
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.