【发布时间】:2012-12-03 13:47:49
【问题描述】:
我目前正在学习 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 方法作为预先存在的一部分字符串类?
【问题讨论】:
标签: javascript typescript