Typescript-如何添加扩展方法

Typescript-如何添加扩展方法,typescript,extension-methods,Typescript,Extension Methods,我读到你可以在Typescript中创建扩展方法,我查了一些代码 并将该代码放在我的extension methods.ts中,但我得到一个错误,即toNumber不存在。我怎样才能解决这个问题 您可以通过以下方式扩展字符串接口: 您可以通过以下方式扩展字符串接口: 您可以扩展字符串接口,如下所示: 接口字符串{ toNumber:数字; } String.prototype.toNumber=functionthis:String{ 把这个还给我; } 常数s='123.45'; s、 汤姆伯

我读到你可以在Typescript中创建扩展方法,我查了一些代码

并将该代码放在我的extension methods.ts中,但我得到一个错误,即toNumber不存在。我怎样才能解决这个问题

您可以通过以下方式扩展字符串接口:

您可以通过以下方式扩展字符串接口:

您可以扩展字符串接口,如下所示:

接口字符串{ toNumber:数字; } String.prototype.toNumber=functionthis:String{ 把这个还给我; } 常数s='123.45'; s、 汤姆伯; 您可以扩展字符串接口,如下所示:

接口字符串{ toNumber:数字; } String.prototype.toNumber=functionthis:String{ 把这个还给我; } 常数s='123.45'; s、 汤姆伯;
字符串严格定义了接口。如果您想使用其他方法,则需要定义自己的字符串,例如类型MyString=string&{toNumber:=>number}。@MaciejSikora请参见下面的示例string已严格定义接口。如果您想使用其他方法,则需要定义自己的字符串类型,如MyString=string&{toNumber:=>number}。@MaciejSikora请参见下面的示例,导出{};是否?@MikeOttink您只能在模块中扩展全局范围。如果模块具有导入或导出,则将其视为文件。因此,它是一个解决方案,使它成为一个模块。如果文件有其他导入或导出,则不需要导出{};是否?@MikeOttink您只能在模块中扩展全局范围。如果模块具有导入或导出,则将其视为文件。因此,它是一个解决方案,使它成为一个模块。如果文件有其他导入或导出,则不需要该文件
export { };

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

String.prototype.toNumber = function (this: string) { return parseFloat(this) };