2016-09-15 40 views
1

我在Angular2创建自定义管一边写代码过滤我收到下面的生成错误:与angular2打字稿错误:字符串是不可转让

TS2322: Build:Type'() => string' is not assignable to 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: 

我是新来typescrip有人可以帮我解决这个问题吗?

+0

尝试只使用'let filter = args [0] .toLocaleLowerCase?..........' – micronyks

回答

2

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

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

+0

谢谢Abdul ... –