我有angular2应用,我使用immutable.js
。当我使用来自Map
的用户immutable
函数时,编译器会被卡住。当我不从immutable.js
导入输入时,它工作正常,但我从`immutable.js使用的每个函数都出错。
import {Map} from 'immutable';
这是阻止打字稿的行。
答案 0 :(得分:3)
immutable.js中的Map
可能与TypeScript的内部Map
冲突。要解决冲突,您可以尝试import {Map} as MyMap from 'immutable'
之类的内容,并在代码中使用MyMap
。
您还可以使用import * as Immutable from 'immutable'
并访问Immutable
命名空间中的功能。
答案 1 :(得分:1)
我使用的是不可变版本3.8.2,它正好与打字稿配合使用。
import {Map} from 'immutable';
const map1 = Map( {a: 1, b: 4, c: 3 })
const map2 = map1.set('b', 2)
import {Map} from 'immutable';
这样的导入映射函数将与javascript ES2015 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)