我正在为Angular2创建一个自定义管道,同时为过滤器编写代码我遇到了构建错误:
TS2322:构建:类型'()=>字符串'不能分配给'字符串'
请在下面找到我的示例代码:
import { PipeTransform, Pipe } from 'angular2/core';
import { IProduct } from './products';
@Pipe({
name: 'productFilter'
})
export class ProductFilterPipe implements PipeTransform {
transform(value: IProduct[], args: string[]): IProduct[] {
let filter: string = args[0].toLocaleLowerCase ? args[0].toLocaleLowerCase : null;
return filter ? value.filter((product: IProduct) =>
product.productName.toLocaleLowerCase().indexOf(filter) != -1) : value;
}
}
以上错误来自以下代码行:
let filter:
我是打字稿的新手可以有人帮我解决这个问题吗?
答案 0 :(得分:2)
您需要在函数toLocaleLowerCase的调用中添加括号。换句话说,你应该做到:toLocaleLowerCase()
因为当你提供没有parantheses的名字时,你并没有真正调用该函数。你是说你希望变量过滤器等于函数本身,而不是调用后函数返回的值。