编译使用immutable.js映射类型的文件时,Typescript被卡住
我有angular2应用程序,我正在使用编译使用immutable.js映射类型的文件时,Typescript被卡住,typescript,angular,immutable.js,Typescript,Angular,Immutable.js,我有angular2应用程序,我正在使用immutable.js。当我使用用户Map函数时,来自immutabletypescript的编译器被卡住了。当我不从immutable.js导入输入时,它可以正常工作,但我从`immutable.js使用的每个函数都会出错 import {Map} from 'immutable'; 这是阻止typescript的行 来自immutable.js的Map可能与TypeScript的内部Map冲突。要解决冲突,您可以尝试从“不可变”中将{Map}导入为
immutable.js
。当我使用用户Map
函数时,来自immutable
typescript的编译器被卡住了。当我不从immutable.js导入输入时,它可以正常工作,但我从`immutable.js使用的每个函数都会出错
import {Map} from 'immutable';
这是阻止typescript的行 来自immutable.js的Map
可能与TypeScript的内部Map
冲突。要解决冲突,您可以尝试从“不可变”中将{Map}导入为MyMap,并在代码中使用MyMap
您还可以使用import*作为“不可变”的不可变项
,并访问Immutable
命名空间中的功能。我已经使用了不可变版本3.8.2,并且它正与typescript一起工作
import {Map} from 'immutable';
const map1 = Map( {a: 1, b: 4, c: 3 })
const map2 = map1.set('b', 2)
像这样导入map函数Import{map}来自'immutable'
将与javascript ES2015冲突,因此您不能同时使用这两个主题来解决此问题。您可以使用另一个变量或别名来保存不可变的映射函数,如下所示
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)
阻碍?实际的错误消息是什么?没有错误消息。简单地说,typescript被卡住了,我必须使用ctrl+c
来关闭它down@VadimMacagon如果我从tsd.d.ts
中删除键入,编译器不会阻塞,但是我从immutable.js
中使用的每个函数/类都会出现语法错误,我像这样尝试import{Map as MyMap}来自“不可变”
,并且它不起作用。使用名称空间也会崩溃。当我导入的函数不是Map
Don't put作为MyMap
放在花括号中时,它就起作用了。如果您使用import*作为“不可变”的不可变项,并访问Immutable.Map
,会发生什么情况?如果我没有将作为MyMap
放在大括号中,如果我使用import*作为“不可变”的不可变项,则会出现语法错误。
typescript编译器仍然是块我刚刚转到Immutable.js页面()它们提供了一个TypeScript示例,该示例使用import Immutable=require('Immutable')导入代码然后访问不可变的.Map
。这对您有用吗?仍然无法运行:(