打字稿:无法读取未定义的 属性 'toLowerCase'

Typescript: Cannot read property 'toLowerCase' of undefined

我在网上收到这个错误:

return filter ? value.filter(element => element.type.toLowerCase().indexOf(filter.toString().toLowerCase()) != -1) : value;

element.type为空字符串时(过滤空列)。如何解决这个问题?

如消息所述:element.typeundefined。在您的 filter 调用中添加检查。像这样,你放什么取决于你期待什么,我只能猜测。

return filter 
    ? value.filter(element => element.type && element.type.toLowerCase().indexOf(filter.toString().toLowerCase()) != -1) 
    : value;

此错误本身给出了解决方案,因为传递给更改为小写的值是 null 或未定义。 要解决此类错误,请将要传递的数据的语句放在 if 语句中。

喜欢:

if(somevalue != null || somevalue != undefined)
{ ... }

将语句放在 if 语句中解决了我的问题。

说得好,错误本身给出了解决方案,因为传递给更改为小写的值是 nullundefined

只需添加到您看到错误的代码行

if(somevalue != null || somevalue != undefined)
{ ... }