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

时间:2016-02-09 16:38:50

标签: typescript angular immutable.js

我有angular2应用,我使用immutable.js。当我使用来自Map的用户immutable函数时,编译器会被卡住。当我不从immutable.js导入输入时,它工作正常,但我从`immutable.js使用的每个函数都出错。

import {Map} from 'immutable';

这是阻止打字稿的行。

2 个答案:

答案 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)

stackblitz typescript demo

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)