Я пытаюсь использовать новый collection types of ES6 в своем проекте машинописного текста/реакции.ES6 Map.forEach не является функцией после компиляции машинописных файлов
interface MyComponentProps{
myMap: Map<String, {isAvailable?: boolean}>,
}
...
this.props.myMap.keys();
IntelliJ и Webpack может скомпилировать мой код без предупреждения, но я получил сообщение об ошибке во время выполнения в Chrome 55. this.props.myMap.forEach is not a function
tsconfig.json
{
"compilerOptions": {
"moduleResolution": "node",
"outDir": "./dist/",
"sourceMap": true,
"noImplicitAny": true,
"module": "commonjs",
"target": "es6",
"jsx": "react"
}
}
package.json
{
"name": "cocktails-db",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"production": "webpack -p",
"start": "webpack-dev-server -d",
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"axios": "^0.15.3",
"elasticsearch": "^12.1.0",
"react": "^15.4.0",
"react-bootstrap": "^0.30.7",
"react-dom": "^15.4.0",
"react-router": "^3.0.0",
"react-router-bootstrap": "^0.23.1",
"react-select2-wrapper": "^1.0.4-beta1"
},
"devDependencies": {
"@types/axios": "^0.9.34",
"@types/bootstrap": "^3.3.32",
"@types/elasticsearch": "^5.0.1",
"@types/react": "^0.14.51",
"@types/react-bootstrap": "0.0.37",
"@types/react-dom": "^0.14.19",
"@types/react-router": "^2.0.41",
"@types/react-router-bootstrap": "0.0.27",
"html-webpack-plugin": "^2.24.1",
"ts-loader": "^1.2.2",
"typescript": "^2.0.10",
"webpack": "^1.13.3",
"webpack-dev-server": "^1.16.2"
}
}
Я Я могу использовать тип карты, когда вы набираете ее в консоли браузера, поэтому я думаю, что это проблема создания машинописных текстов. Я где-то пропал без вести?
--- Редактировать --- На самом деле это была проблема с инициализацией, но я до сих пор не знаю, почему я не получаю уведомления о типе обратной связи/типа.
Это, как я называю'MyComponent'
myMap : any;
...
this.myMap="";
...
render() {
return (
<div>
<MyComponent myMap={this.myMap}> </MyComponent>
</div>
)
Пожалуйста, добавьте более релевантный код. Вы уверены, что проходите карту? –
Ожидается, что полинаполненные функции ES6 будут заполнены полифорами. И очевидно, что это не так в вашем случае. – estus
@estus нет необходимости в пополнении, хром поддерживает объект «Карта» –