3

我想知道是否有可能向 Typescript 中的类的原型添加一些函数。

我的情况是这样的:我有一个带有类的文件,例如 image.ts:

export class Image {
    b64img: string;
}

这个类是生成的,所以我不能向它添加方法。我在其他生成的类中使用这个类,因此无法使用扩展图像创建一个新类来添加函数。

有没有什么选项可以让我在一个单独的文件中向我的类添加一个函数,以便我可以在类 Image 的所有对象上使用它?

谢谢

4

1 回答 1

8

你可以。您可以通过为定义它的模块定义扩展来扩展它。

创建一个名为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 moduled.ts.

于 2018-05-03T13:12:21.800 回答