簡體   English   中英

如何將對象中的每種類型的屬性映射到接口中的屬性?

[英]How to map each type of properties in object to a property in interface?

我正在嘗試為打字稿中的 react-redux 項目創建調度操作界面。 我希望能夠基於另一個具有可以調度的所有類型的對象來決定操作界面中的類型屬性。

輸入:

const FooActions = {
    REMOVE_FOO: "removeFOO",
    ADD_FOO: "addFOO",
    UPDATE_FOO: "updateFOO",
};

interface FooActionType {
    type: "MAP ALL property values from FooActions";
    payload: any;
}

預期輸出:

interface FooActionType {
    type: "removeFOO" | "addFOO" | "updateFOO";
    payload: any;
}

要獲取對象中值的類型,您可以使用T[keyof T] (其中T是類型)。 要在FooActions保留字符串文字類型,您需要使用類型斷言。

鑒於上述情況,創建FooActionType很簡單:


const FooActions = {
    REMOVE_FOO: "removeFOO",
    ADD_FOO: "addFOO",
    UPDATE_FOO: "updateFOO",
} as const;

interface FooActionType {
    type: typeof FooActions[keyof typeof FooActions];
    payload: any;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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