簡體   English   中英

自定義界面TypeScript

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM