TypeScript错误:angular2: string不可赋值



我正在Angular2中创建一个自定义管道,同时编写过滤器代码,我得到以下构建错误:

TS2322: Build:Type'() => string'不能赋值给Type' string'

请查看下面的示例代码:

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:

我是打字新手,有人能帮我解决这个问题吗?

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

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

最新更新