我想知道是否有可能在Typescript中为类的原型添加一些函数。
我的情况如下: 我有一个类的文件,例如image.ts:
export class Image {
b64img: string;
}
生成此类,因此无法向其添加方法。我在其他生成的类中使用此类,因此无法使用extends Image创建新类来添加函数。
有没有选项可以在一个单独的文件中为我的类添加一个函数,所以我可以在类Image的所有对象上使用它?
由于
答案 0 :(得分:4)
你可以。您可以通过定义其定义的模块的扩展来扩展它。
创建一个名为image-extension.ts
的文件或类似文件。
现在,如果在该文件中,您将导入Image
,如下所示:
import { Image } from `image`;
declare module 'image' { // same name than in the import!
export interface Image {
newMethod: () => void;
}
}
Image.prototype.newMethod = function() {
console.log('new method');
}
现在,无论您在何处导入此文件,都可以使用该方法:
import { Image } from 'image';
import 'image-extension'; // import just for side-effects
当然,您也可以将declare module
添加到d.ts
文件中,以便自动加载,并在另一个文件中将真实函数添加到原型中,确保这样的文件得到加载到您的应用程序中