What Is PipeTransform interface?
The Pipe class implements the PipeTransform interface that accepts input value (It is optional parameters) and returns the transformed value.
The transform method is an important method to a pipe.
To create a Pipe, you must implement this interface.
Angular invokes the transform method with the value of a binding as the first, and second argument in list form.
The PipeTransform interface looks like -
export interface PipeTransform {
transform(value: any, ...args: any[]): any;
}
And it imported from Angular core -
import {Pipe, PipeTransform} from '@angular/core';
Two Categories of Pipes in Angular –
1) pure
2) impure
Every pipe has been pure by default. If you want to make a pipe impure that time you will allow the setting pure flag to false.
Angular Impure Pipes –
What Is Impure Pipe?
Angular executes an impure pipe during every component change detection cycle. An impure pipe is called often, as often as every keystroke or mouse-move.
If you want to make a pipe impure that time you will allow the setting pure flag to false.
@Pipe({
name: 'currency',
pure:false
})
The example for impure pipe –
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'currency',
pure:false
})
export class CurrencyPipe implements PipeTransform {
transform(value: any, args?: any): any {
if (!value) {
return '1.00';
}
return value;
}
}
Angular Pure Pipes –
What Is Pure Pipe?
Angular executes a pure pipe only when it detects a pure change to the input value. A pure change can be primitive or non-primitive.
Primitive data are only single values, they have not special capabilities and the non-primitive data types are used to store the group of values.
@Pipe({
name: 'currency'
})
OR
@Pipe({
name: 'currency',
pure: true
})
And another example for a pure pipe –
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'currency'
})
export class CurrencyPipe implements PipeTransform {
transform(value: any, args?: any): any {
if (!value) {
return '1.00';
}
return value;
}
}
For more detail kindly refer the -
https://www.code-sample.com/2018/05/angular-5-6-7-pipes-decorator.html