我目前正在关注Pluralsight上一个古老的Angular教程,并被告知要输入以下代码
performFilter(filterBy: string): IProduct[] {
filterBy = filterBy.toLocaleLowerCase;
return this.products.filter((product: IProduct) => product.productName.toLocaleLowerCase.indexOf(filterBy) !== -1);
}
应该过滤用户搜索。 (即他们输入字母' a',只显示包含该字母的结果。但是,我收到了一些错误:
1:[ts] Type'()=>字符串'不能指定为' string'。 (参数)filterBy:string
2:[ts] Property' indexOf'类型'()=>上不存在字符串&#39 ;. 任何
我是打字稿的新手,不知道我是否应该投射这些变量或完全不同的东西。
答案 0 :(得分:0)
interface IProduct { productName: string}
function performFilter(filterBy: string): IProduct[] {
filterBy = filterBy.toLocaleLowerCase();
return this.products.filter((product: IProduct) => product.productName.toLocaleLowerCase().indexOf(filterBy) !== -1);
}
是一个函数,你应该调用它,想法是获得原始字符串的小写版本:
const fs = require('fs');
const isAvailableToRead = file => {
try {
fs.accessSync(file, fs.constants.R_OK);
return true;
} catch (err) {
return false;
}
}
const readDirectory = path => {
const files = fs.readdirSync(path);
files.forEach(file => {
if(isAvailableToRead(file)) {
console.log(`Do some logic ${file}`);
}
});
}
readDirectory(__dirname);
答案 1 :(得分:0)
您可以使用toLowerCase()
performFilter(filterBy: string): IProduct[] {
filterBy = filterBy.toLowerCase();
return this.products.filter((product: IProduct) => product.productName.toLowerCase().indexOf(filterBy) !== -1);
}