Angular 12/13自定义SumPipe时遭遇override修饰符错误求助
问题解决:SumPipe重写transform方法需添加override修饰符
错误原因
从TypeScript 4.3版本开始,严格类型检查模式下,重写基类方法必须显式添加override关键字,明确标识该方法是对基类成员的重写,避免意外覆盖基类方法的情况。你的SumPipe继承了CurrencyPipe并重新实现了transform方法,因此必须添加该修饰符。
修复后的代码
import { CurrencyPipe } from '@angular/common'; import { Pipe, PipeTransform } from '@angular/core'; @Pipe({ name: 'sumPipe', }) export class SumPipe extends CurrencyPipe implements PipeTransform { // 添加override修饰符 override transform(value: any, currency: string): any { // 修正参数拼写错误:currancy -> currency if (value == '-') return '-'; let symbol; switch (currency) { case 'MYR': symbol = 'RM'; break; case 'GBP': symbol = '£'; break; case 'SGD': symbol = 'SGD'; break; case 'CAD': symbol = 'CAD'; break; case 'IDR': symbol = 'Rp'; break; case 'EUR': symbol = '€'; break; default: symbol = currency; break; } if (value) { value = super.transform(value); value = value.replace('$', ''); if (value < 0) { value = '-' + symbol + value * -1; } else { value = symbol + value; } return value; } else { return symbol + ' 0'; } } }
额外提示
代码中参数currancy存在拼写错误,正确应为currency,建议修正以避免后续潜在问题。
内容的提问来源于stack exchange,提问作者user20574839
相关产品推荐
相关产品推荐

