【发布时间】:2014-05-13 03:58:25
【问题描述】:
我有一些由工具生成的 TypeScript 代码。我想在另一个文件中扩展这个类。从 0.9.1.1 开始,最好的方法是什么?
我想也许我可以将我的附加函数装订到原型上,但这会产生各种错误(根据编译器的心情而变化)。
例如:
Foo.ts(由工具生成)
module MyModule {
export class Dog { }
}
Bar.ts
module MyModule {
function bark(): string {return 'woof';}
Dog.prototype.bark = bark;
}
【问题讨论】:
-
我将您的问题解释为您想要类似于 C# 中的部分类的东西:单个类,但具有跨越多个文件的定义。一些属性和方法将在一个文件中定义(由工具生成的文件),而另一些将在另一个文件中定义,但它们是 same 类的成员,而不是子类。这个对吗?如果是这样,我认为在 TypeScript 中没有任何方法可以精确地执行此操作(请参阅typescript.codeplex.com/workitem/933)。
-
您希望在基类定义之外动态扩展基类。这似乎违背了 TypeScript 的精神,即对 JavaScript 强制执行更强的类型。您想要做的是惯用的 JavaScript,但 TypeScript 是为了避免而发明的。允许类型变形有点违背强类型的原则......
标签: class typescript