class ts 扩展方法_如何在Typescript中扩展String Prototype并使用它?

本文介绍了如何在TypeScript 1.8+版本中扩展String原型,包括声明新成员以通过类型检查,并实现该成员。首先,在.d.ts文件中声明接口,然后在JavaScript中实现并添加到String.prototype。确保在应用程序开始时导入实现文件。
摘要由CSDN通过智能技术生成

GregRos..

79

此答案适用于TypeScript 1.8+.这类问题有很多其他答案,但它们似乎都涵盖旧版本.

在TypeScript中扩展原型有两个部分.

第1部分 - 声明

声明新成员,以便它可以传递类型检查.您需要声明一个与要修改的构造函数/类同名的接口,并将其放在正确的声明的命名空间/模块下.这称为范围扩充.

以这种方式扩展模块只能在特殊的声明.d.ts文件*中完成.

//in a .d.ts file:

declare global {

interface String {

padZero(length : number) : string;

}

}

外部模块中的类型具有包含引号的名称,例如"bluebird".

全球类型,如模块名称Array和String是global,没有任何报价.但是,在许多版本的TypeScript中,您可以完全放弃模块声明并直接声明接口,具有以下内容:

declare interface String {

padZero(length : number) : string;

}

在1.8之前的某些版本中也是这种情况,在2.0之后的某些版本中也是如此,例如最新版本2.5.

请注意,除了文件中的declare语句之外,您不能拥有任何内容.d.ts,否则它将无效.

这些声明被添加到包的环境范围中,因此它们将应用于所有TypeScript文件,即使您从不直接import或///

*从技术上讲,你可以通过这个限制并将声明放在常规.ts文件中,但这会导致编译器出现一些挑剔的行为,并且不建议这样做.

第2部分 - 实施

第2部分实际上是实现成员并将其添加到它应该存在的对象中,就像在Java

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值