请注意底部的错误消息:“config.ts(19,28):错误TS 2339:类型“Answer[]”上不存在属性“find”。我以为所有的数组都有一个“find”方法。我肯定我错过了什么!
krcsximq1#
从Typescript 2.0开始,您还可以使用--lib编译器标志或tsconfig.js文件中的"lib": []部分来包含ES6功能,同时仍然针对ES5。参见https://github.com/Microsoft/TypeScript/issues/6974在这种情况下,只需在tsconfig.js中包含以下配置选项:
--lib
tsconfig.js
"lib": []
ES6
ES5
... "lib": [ "es6" ], "target": "es5" ...
iyfjxgzm2#
为了回答你的问题,它存在于TypeScript中,但不是没有一些配置。要解决此问题,您需要更新compilerOptions,如下所示:
compilerOptions
"compilerOptions": { "lib": ["es6"], "target": "es5" }
TypeScript 2.0
dkqlctbz3#
只是总结了所有其他答案。在你的项目根目录下创建一个tsconfig.json,并确保你的配置中有这个:
tsconfig.json
{ ... (other configs) "compilerOptions": { "lib": [ "es2017", "dom" ], "target": "es5" } ... (other configs) }
fzwojiic4#
如前所述,find函数确实是ES6的一部分。我们通过使用filter来修复它,并获取结果数组的第一个元素。
find
filter
1l5u6lss5#
使用“lib”:[“es6”]我得到的错误更多,使用[“es2017”,“dom”]得到的错误更少:
"compilerOptions": { "module": "es6", "lib": [ "es2017", "dom" ] ............... }
它使用[].find()解决了这个问题
mitkmikd6#
如果你使用Typescript,那么你可以使用Array.prototype.find(),因为Typescript是javascript的超集。但是因为你'编译'到ES5,你会得到错误,因为方法 find 是ES6(ES2015)的一部分,但不是ES5。我花了一段时间才意识到这个显而易见的事实。它不是你的 typescript ,而是你的目标。
vkc1a9a27#
我猜答案包含在kkaosninja的评论中:find是es6的一部分,我仍然在es5上:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find
pokxtpni8#
我在一个node应用程序中遇到了类似的问题。从零开始创建文件。我解决这个问题的方法是将“@types/node”包安装到我的项目中。为了安装这个包,我使用了以下命令npm install @types/node --save-dev这个解决方案可能对那些从一开始就开始学习Typescript的人有帮助。
8条答案
按热度按时间krcsximq1#
从Typescript 2.0开始,您还可以使用
--lib
编译器标志或tsconfig.js
文件中的"lib": []
部分来包含ES6
功能,同时仍然针对ES5
。参见https://github.com/Microsoft/TypeScript/issues/6974在这种情况下,只需在
tsconfig.js
中包含以下配置选项:iyfjxgzm2#
为了回答你的问题,它存在于TypeScript中,但不是没有一些配置。
要解决此问题,您需要更新
compilerOptions
,如下所示:TypeScript 2.0
dkqlctbz3#
只是总结了所有其他答案。在你的项目根目录下创建一个
tsconfig.json
,并确保你的配置中有这个:fzwojiic4#
如前所述,
find
函数确实是ES6的一部分。我们通过使用
filter
来修复它,并获取结果数组的第一个元素。1l5u6lss5#
使用“lib”:[“es6”]我得到的错误更多,使用[“es2017”,“dom”]得到的错误更少:
它使用[].find()解决了这个问题
mitkmikd6#
如果你使用Typescript,那么你可以使用Array.prototype.find(),因为Typescript是javascript的超集。但是因为你'编译'到ES5,你会得到错误,因为方法 find 是ES6(ES2015)的一部分,但不是ES5。
我花了一段时间才意识到这个显而易见的事实。它不是你的 typescript ,而是你的目标。
vkc1a9a27#
我猜答案包含在kkaosninja的评论中:find是es6的一部分,我仍然在es5上:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find
pokxtpni8#
我在一个node应用程序中遇到了类似的问题。从零开始创建文件。我解决这个问题的方法是将“@types/node”包安装到我的项目中。为了安装这个包,我使用了以下命令
npm install @types/node --save-dev
这个解决方案可能对那些从一开始就开始学习Typescript的人有帮助。