我在typescript中创建了一个类,它的属性是ES6 (ECMAscript 2016) Map,如下所示:
class Item {
configs: ????;
constructor () {
this.configs = new Map();
}
}
我如何在typescript中声明一个ES6 Map类型?
我在typescript中创建了一个类,它的属性是ES6 (ECMAscript 2016) Map,如下所示:
class Item {
configs: ????;
constructor () {
this.configs = new Map();
}
}
我如何在typescript中声明一个ES6 Map类型?
当前回答
最起码:
tsconfig:
"lib": [
"es2015"
]
如果你想要IE < 11支持,安装一个polyfill如https://github.com/zloirock/core-js: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map
其他回答
最起码:
tsconfig:
"lib": [
"es2015"
]
如果你想要IE < 11支持,安装一个polyfill如https://github.com/zloirock/core-js: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map
不确定这是否是官方的,但这在typescript 2.7.1中为我工作:
class Item {
configs: Map<string, string>;
constructor () {
this.configs = new Map();
}
}
在简单的Map<keyType, valueType>
这里有一个例子:
this.configs = new Map<string, string>();
this.configs.set("key", "value");
Demo
我如何在typescript中声明一个ES6 Map类型?
您需要目标——模块es6。这是不幸的,你可以在这里提出你的关注:https://github.com/Microsoft/TypeScript/issues/2953#issuecomment-98514111
使用库配置选项,您可以樱桃选择映射到您的项目。只需添加es2015。集合到您的lib部分。当你没有库配置时,添加一个默认库,并添加es2015.collection。
所以当你有target: es5时,改变tsconfig。json:
"target": "es5",
"lib": [ "dom", "es5", "scripthost", "es2015.collection" ],