请注意底部的错误消息:“config.ts(19,28):error TS2339:类型'Answer []”上不存在属性'find'。我以为所有数组都有一个“查找”方法。
我确信我错过了什么!
答案 0 :(得分:17)
自Typescript 2.0以来,您还可以使用--lib
文件或"lib": []
文件中的tsconfig.js
部分来包含ES6
个功能,同时仍定位ES5
}。见https://github.com/Microsoft/TypeScript/issues/6974
在这种情况下,只需在tsconfig.js
中包含以下配置选项:
...
"lib": [ "es6" ],
"target": "es5"
...
答案 1 :(得分:6)
仅针对下一个访问此页面的人,发现其他答案无效或令人困惑:
将其添加到您的tsconfig.json
文件中:
"compilerOptions": {
"lib": [
"es6"
],
"target": "es5"
}
答案 2 :(得分:3)
如前所述,find
功能确实是ES6的一部分。
我们使用filter
代替并获取结果数组的第一个元素来修复它。
答案 3 :(得分:2)
with“ lib”:[“ es6”]我遇到的错误更多,而使用[“ es2017”,“ dom”]的错误更少:
"compilerOptions": {
"module": "es6",
"lib": [ "es2017", "dom" ]
...............
}
它用[] .find()
解决了问题答案 4 :(得分:1)
所以...如果您使用Typescript,那么您可能正在使用Array.prototype.find(),因为Typescript是javascript的超集。 但是,因为您“编译”到ES5会出现错误,因为 find 方法是ES6(ES2015)的一部分,而不是ES5。
我花了一段时间才意识到这个显而易见的事实。它不是你的打字稿,而是你的目标。
答案 5 :(得分:1)
只是所有其他答案的总结。在项目的根目录中创建一个MongoClients.getDefaultCodecRegistry()
,并确保在配置中包含此名称:
new_dict = {key: 'None' if value is None else value for (key, value) in old_dict.items()}
答案 6 :(得分:0)
我猜答案已包含在kkaosninja的评论中:find是es6的一部分,我仍然在es5上:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find