首页 > 解决方案 > 如何在打字稿中向 CanvasRenderingContext2D 原型添加函数

问题描述

我想在 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
}

但它仍然抱怨这个错误:

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

标签: javascripttypescript

解决方案


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

 interface CanvasRenderingContext2D {
    fillTextCircle: any;
}

它会工作

链接问题


推荐阅读