可能重复:
原型如何在打字稿上扩展?
我目前正在学习 TypeScript,并且想知道如何向现有对象添加功能。假设我想将 Foo 的实现添加到 String 对象。在 JavaScript 中,我会这样做:
String.prototype.Foo = function() {
// DO THIS...
}
了解 TypeScript 类、接口和模块是开放式的,这让我尝试了以下操作,但没有成功
1. 引用 TypeScript 中的 JavaScript 实现
JavaScript:
String.prototype.Foo = function() {
// DO THIS...
}
TypeScript:
var x = "Hello World";
x.Foo(); //ERROR, Method does not exist
2.扩展接口
interface String {
Foo(): number;
}
var x = "Hello World";
x.Foo(); //Exists but no implementation.
3.扩展类
class String {
Foo(): number {
return 0;
}
}
// ERROR: Duplicate identifier 'String'
正如您从这些结果中看到的那样,到目前为止,我已经能够通过接口契约添加该方法,但没有实现,那么,我该如何定义和实现我的 Foo 方法作为预先存在的 String 类的一部分?