你如何键入immutablejs Map键?

时间:2017-01-23 02:07:40

标签: typescript immutable.js

如何键入immutablejs Map键,在我的情况下强制使用'id'键和数字值?

所以我尝试了不同的变体,例如:

let campaignSelected: Map<{id: string},number>;

但没有爱。

Error:(12, 13) TS2322:Type 'Map<string, number>' is not assignable to type 'Map<{ id: string; }, number>'.
  Type 'string' is not assignable to type '{ id: string; }'.

也试过没有运气:

type myIdType = {id: number}

export interface IMsDatabase {
    uiState: {
        campaign: {
            timelineSelected: Map<myIdType,number>;
         }
    }
}

感谢阅读,

肖恩

1 个答案:

答案 0 :(得分:0)

要映射不可变对象,您可以将状态设置为:

campaign: {timelineSelected: myIdType.map(item=>{item.number})

这可能是不相关的,但如果您只想要特定值而不必映射不可变对象,则可以调用myIdType.get('id')