具有angular2:string的TypeScript错误不可分配

时间:2016-09-15 18:14:13

标签: angularjs angular typescript

我正在为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:

我是打字稿的新手可以有人帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

您需要在函数toLocaleLowerCase的调用中添加括号。换句话说,你应该做到:toLocaleLowerCase()

因为当你提供没有parantheses的名字时,你并没有真正调用该函数。你是说你希望变量过滤器等于函数本身,而不是调用后函数返回的值。