在 Angular 应用程序中找不到扩展程序

Extension not found in Angular application

在 Angular 13 应用程序中,我定义了以下扩展名:

export { }

Object.defineProperty(String.prototype, "toNumber", {
  value: function(this: string) {
    return this.trim() ===  '' ? null : Number(this) || null;
  }
});

然后我用下面的方法:

this.userId = value.get('userId')?.toNumber() ?? undefined;

但是我得到了编译错误:

Property 'toNumber' does not exist on type 'string'.

我在以前的 Angular 版本应用程序中没有收到此错误。

我错过了什么?

  1. 向您的 extensions.ts 文件添加新声明:
export {};

declare global {
    interface String {
        toNumber(): number;
    }
}

Object.defineProperty(String.prototype, "toNumber", {...});
  1. 不要忘记导入此文件:import "../extensions";
    模式详情 here.