使用以下代码,我得到一个错误,指出find()属性不存在:
var foobar = [];
var bar = { value: 123 };
var foo = { value: 456 };
foobar.push(foo, bar);
console.log(foobar.find((obj) => obj.value === 123));
如果我在javascript中使用相同的代码,则可以正常工作。
编辑:也许有点肮脏的解决方法...您可以将foobar强制转换为任何一个,从而避免编译器错误: console.log((foobar as any) .find((obj)=> obj.value === 123));
答案 0 :(得分:0)
我已经检查了此代码。一切正常。
const bar = { value: 123 };
const foo = { value: 456 };
const foobar = [foo, bar];
console.log(foobar.find((obj) => obj.value === 123));
答案 1 :(得分:0)
由于TypeScript是JavaScript的超集,因此所有代码都应编译为纯JavaScript,因此您的代码应该可以工作。如果不是出于某种原因,请尝试使用TypeScript的filter()
方法而不是find()
:
foobar.filter(obj => obj.value === 123)[0];
答案 2 :(得分:0)
是什么让您出错?是您的浏览器,文本编辑器还是Typescript编译器?
如果是您的浏览器,则需要在target
中更改tsconfig.json
。尝试es5
。 Internet Explorer和Node 0.12不支持Array.find
。
如果是您的文本编辑器,则需要修复编辑器设置。确切的设置取决于编辑器。您需要查找Java语言或Typescript语言版本的设置,并将其设置为es6
或更高版本。
如果是Typescript编译器...我实际上不知道是什么原因引起的。也许是Typescript的旧版本?