Angularでデータ変換のニーズに合わせてカスタムパイプを作成できます。
このアクティビティでは、カスタムパイプを作成してテンプレートで使用します。
パイプは @Pipe デコレーターを付けたTypeScriptクラスです。例を挙げます。
import {Pipe, PipeTransform} from '@angular/core';@Pipe({ standalone: true, name: 'star',})export class StarPipe implements PipeTransform { transform(value: string): string { return `⭐️ ${value} ⭐️`; }}
StarPipe は文字列値を受け取り、その文字列を星で囲んだものを返します。以下の点に注意してください。
@Pipeデコレーターの構成のnameは、テンプレートで使用される名前です。transform関数は、ロジックを記述する場所です。
では、実際に試してみましょう。ReversePipe を作成します。
- 
      
      
  
ReversePipeの作成reverse.pipe.tsでReversePipeクラスに@Pipeデコレーターを追加し、次の構成を指定します。@Pipe({ standalone: true, name: 'reverse'}) - 
      
      
  
transform関数の実装これで、
ReversePipeクラスはパイプになります。transform関数を更新して、反転ロジックを追加します。export class ReversePipe implements PipeTransform { transform(value: string): string { let reverse = ''; for (let i = value.length - 1; i >= 0; i--) { reverse += value[i]; } return reverse; }} - 
      
      
  
テンプレートで
ReversePipeを使用する 
パイプロジックを実装したら、最後のステップとしてテンプレートで使用します。app.component.ts でテンプレートにパイプを含め、コンポーネントのインポートに追加します。
@Component({ ... template: `Reverse Machine: {{ word | reverse }}` imports: [ReversePipe]})
これにて終了です。このアクティビティの完了、おめでとうございます。これでパイプの使い方と、独自のパイプを実装する方法がわかりました。