为什么我们使用" PipeTransform"在自定义管道?

时间:2018-01-08 18:00:48

标签: angular typescript

这是自定义管道..

import { Pipe, PipeTransform } from '@angular/core';

@Pipe({
  name: 'dc'
})
export class DcPipe implements PipeTransform {

  transform(value: any, args?: any): any {
    if (!value) return value;

    return value.replace(/\w\S*/g, function(txt) {
      return txt.charAt(0).toLowerCase() + txt.substr(1).toUpperCase();
    });
  }

}

即使没有" PipeTransform"它也能正常工作。模块..我不知道为什么他们使用了......任何想法? " PipeTransform"的目的是什么?在管道

2 个答案:

答案 0 :(得分:1)

PipeTransform是一个界面:https://angular.io/api/core/PipeTransform

包含它并使用implements PipeTransform可确保您的类实现所需的transform方法并符合其接口(特别需要第一个value参数...它不会其他很多)。

符合界面可捕获可能的运行时错误(在转换时间期间),包括但不限于:

  • 根本没有实施transform
  • 未从transform
  • 返回值

这类似于implements OnInit / ngOnInit。您没有来实现它以使代码工作,但这是一个很好的做法。

答案 1 :(得分:0)

以下是API定义:Integrating JavaScript Components and Extension

链接到背后的代码:https://angular.io/api/core/PipeTransform

PipeTransform是一个简单的界面,它描述了预期的实现期望,仅此而已。