class ts 扩展方法_TypeScript中的简单扩展方法

此示例使用继承来扩展原始对象.命名仅用于说明.

class Test {

baseMethod() {

}

}

class TestWithClose extends Test {

close() {

}

}

var t = new TestWithClose();

t.close();

t.baseMethod();

更新

您已在评论中提到可以按照自己的方式编写内置函数的扩展方法,我可以看到您希望对自己的代码执行相同的操作,但这是不可能的.

我希望这能解释原因.

在TypeScript中创建声明时,可以通过添加声明来扩展声明.您可以使用declare关键字或将文件放在.d.ts文件中:

例如,如果您在一个文件中包含此声明:

declare interface ExampleInterface {

methodOne();

}

您可以在另一个文件中扩展声明:

declare interface ExampleInterface {

methodTwo();

}

因此,当您使用它时,您可以使用这两种功能:

function example(example: ExampleInterface) {

example.methodOne();

example.methodTwo();

}

这些并不是真正的扩展方法 – 这只是告诉编译器不止一次实现.这对jQuery特别有用,因为它允许每个插件都有一个添加到JQuery接口的定义.

您无法为自己的TypeScript代码执行此操作,因为添加到接口将导致所有实现都需要更新以匹配接口定义.

这里的思维转变是TypeScript给你静态输入,你正在寻找动态行为 – 所以你必须选择一个或另一个.例如,您可以在您真正需要的地方使用动态行为,并将其余部分静态输入:

class Test {

}

// statically typed

var stTest = new Test();

// dynamically typed

var testExtender: any = Test;

testExtender.prototype.close = function() {

alert('Close');

};

var t: any = new Test();

t.close();

这并不是说将来不会添加某些语言来支持扩展方法.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值