这是我的自定义管道:

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();
    });
  }
}
在类声明中使用 implements PipeTransform 的目的是什么?
从我看来,即使没有这部分也能正常工作。

最佳答案

PipeTransform 是一个接口(interface):https://angular.io/api/core/PipeTransform

包含它并使用 implements PipeTransform 确保您的类将实现所需的 transform 方法并符合其接口(interface)(特别是需要第一个 value 参数......它没有做太多其他事情)。

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

  • 根本没有实现 transform
  • 没有从 transform
  • 返回值

    这类似于 implements OnInit/ngOnInit 。您不必为了代码工作而实现它,但这是一个很好的做法。

    关于angular - 为什么我们在自定义管道中使用 "PipeTransform"?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48155661/

    10-12 23:25