Ale*_*ilo 3 javascript inheritance prototype typescript
如何使用 TypeScript 中的方法动态扩展类?有什么例子吗?我尝试:
UsersBlocksMyOrders.prototype.myFunc = function():any{
alert('23434');
};
Run Code Online (Sandbox Code Playgroud)
但是编译器给了我一个错误。
大多数情况下,您需要执行以下操作:
interface UsersBlocksMyOrders {
myFunc(): any;
}
Run Code Online (Sandbox Code Playgroud)
否则编译器不知道它。
它甚至适用于现有的类。例如:
interface String {
logit(): void;
}
String.prototype.logit = function () {
console.log(this);
}
let a = "string";
a.logit();
Run Code Online (Sandbox Code Playgroud)
(操场上的代码)
因为您想在不同的模块中更改某些内容,称为Module Augmentation,您需要执行以下操作:
Import { UsersBlocksMyOrders } from "../pages/users/blocks/myorders";
declare module "../pages/users/blocks/myorders" {
interface UsersBlocksMyOrders {
logit(): void;
}
}
UsersBlocksMyOrders.prototype.logit = function () { console.log(this); }
Run Code Online (Sandbox Code Playgroud)
只要有可能(这似乎适合您),直接编辑源代码。这样做应该只在需要的基础上进行。
| 归档时间: |
|
| 查看次数: |
5135 次 |
| 最近记录: |