如何在打字稿中向CanvasRenderingContext2D原型添加函数

时间:2018-11-21 03:09:20

标签: javascript typescript

我想在CanvasRenderingContext2D上添加一个函数。它的作用是绘制一个圆形文本。

在javascript中,我所需要做的就是编写如下代码:

CanvasRenderingContext2D.prototype.fillTextCircle = function () {
    //some code       
}

但是在打字稿中却不起作用。

我也尝试了以下两种方法:

1。   在文件头添加以下代码

interface CanvasRenderingContext2D {
    fillTextCircle: any;
}

CanvasRenderingContext2D.prototype.fillTextCircle = function () {
    //some code       
}

2。  在lib.dom.d.ts中添加这一行

interface CanvasRenderingContext2D extends CanvasState, CanvasTransform, CanvasCompositing, CanvasImageSmoothing, CanvasFillStrokeStyles, CanvasShadowStyles, CanvasFilters, CanvasRect, CanvasDrawPath, CanvasUserInterface, CanvasText, CanvasDrawImage, CanvasImageData, CanvasPathDrawingStyles, CanvasTextDrawingStyles, CanvasPath {
    readonly canvas: HTMLCanvasElement;
    fillTextCircle: any;   //add this line in lib.dom.d.ts
}

但它仍然抱怨此错误:

  

属性“ fillTextCircle”在类型上不存在   “ CanvasRenderingContext2D”。

1 个答案:

答案 0 :(得分:0)

只需添加一个global.d.ts,并添加以下代码:

 interface CanvasRenderingContext2D {
    fillTextCircle: any;
}

它将起作用

link question