2016-09-15 7 views
1

割り当て可能ではありません、私は次のビルドエラーを取得しています:活字のエラー:文字列は、フィルタのコードを書きながら、私はAngular2でカスタムパイプを作成してい

TS2322: Build:Type'() => string' is not assignable to type 'string'

以下の私のサンプルコードを見つけてください:

私はtypescripに新しいです

let filter: 

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; 
} 
} 

上記のエラーは、コードの行を次のようにしてい誰かがこの問題を解決するために私を助けることができますか?

+0

'let filter = args [0] .toLocaleLowerCase?.......... 'のみを使用しようとしています – micronyks

答えて

2

関数toLocaleLowerCaseの呼び出しにかっこを追加する必要があります。言い換えれば、以下のようにしなければなりません:toLocaleLowerCase()

あなたが実際に関数を呼び出すのではなく、関数名をparanthesesなしで指定しているからです。あなたは、関数を呼び出した後に関数から返される値ではなく、関数自体と変数のフィルタを等しくしたいと言っています。

+0

ありがとうAbdul ... –

関連する問題