es6 Map()在使用Typescript时不会编译为es5

时间:2016-11-04 16:41:49

标签: typescript gulp ecmascript-6

我第一次在项目中开始使用Typescript。

我真的想使用Map()来组织一小组键值对。

不幸的是,当打字稿(使用gulp和gulp-typescript)编译为vanilla时,ES5 JavaScript,Map()仍然存在。我需要这个代码才能在ie9中工作。

现阶段的任何建议都将不胜感激。

2 个答案:

答案 0 :(得分:6)

Map是ES6的一部分,与TypeScript无关。

如果你想在ES5环境中使用Map,你应该包括一个合适的polyfill。

我的前两个想法是:

答案 1 :(得分:2)

你需要一个垫片或一个填充物。

我曾经使用es6-map一次,这非常好。

很遗憾没有针对它的TypeScript定义,因此我的建议是直接使用es6-shim中的CDN并将其添加到tsconfig.json

{
    "compilerOptions": {
        "target": "es5",
        "lib": ["es6"]
    }
}

您将能够使用强类型的ES6 Map,您的代码将被编译为ES5,旧浏览器将通过垫片支持它。