编译使用immutable.js Map键入的文件时,Typescript卡住了?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (224)

我有angular2应用程序,我正在使用immutable.js。当我使用Map来自immutabletypescript编译器的用户函数时卡住了。当我不从immutable.js它导入键入工作正常,但我从`immutable.js使用的每个函数都得到错误。

import {Map} from 'immutable';

这是阻止打字稿的行。

提问于
用户回答回答于

我使用了不可变版本3.8.2,并且它与打字稿有关。

import {Map} from 'immutable';

const map1 = Map( {a: 1, b: 4, c: 3 })
const map2 = map1.set('b', 2)

stackblitz打字稿演示

像这样的导入地图函数import {Map} from 'immutable';会与javascript ES2015 Map冲突,所以你不能同时使用这两个主题来解决这个问题,你可以使用另一个变量或别名来保存不可变的map函数,就像这样

import {Map as _map} from 'immutable';

const map1 = _map( {a: 1, b: 4, c: 3 })
const map2 = map1.set('b', 2)

你可以导入整个不可变模块意味着像这样的所有不可变函数

import * as immutable from 'immutable';

const map1 = immutable.Map( {a: 1, b: 4, c: 3 })
const map2 = map1.set('b', 2)
用户回答回答于

Map从immutable.js可打字稿的内部冲突Map。要解决冲突,您可以尝试类似的东西import {Map} as MyMap from 'immutable'MyMap在代码中使用。

您还可以使用import * as Immutable from 'immutable'和访问Immutable命名空间中的功能。

扫码关注云+社区

领取腾讯云代金券