2017-01-23 42 views
0

你如何键入immutablejs地图键,在我的情况给力“ID”和一批价值的关键?你如何键入immutablejs地图的钥匙?

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

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>; 
     } 
    } 
} 

感谢您的阅读,

肖恩

+0

添加实例化地图的代码 –

+0

看起来像修复程序即将到来:https://github.com/Facebook的/不可改变JS /问题/ 683#事件990857809 – born2net

回答

0

要通过一个不可变对象映射,您需要设置你的状态是这样的:

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

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