2016-09-15 39 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 ... –