我想为此模块https://www.npmjs.com/package/canvas编写一个Typescript定义文件(.d.ts)。
所以这是我开始的:
declare module Canvas {
class Canvas {
constructor(width: number, height: number);
}
}
declare module "canvas" {
export = Canvas;
}
当我像这样导入和调用模块时,此方法有效:
/// <reference path="./canvas.d.ts" />
import * as Canvas from "canvas";
new Canvas.Canvas(32, 32)
但是,我想这样调用该类:
new Canvas(32, 32)
我还想在类中添加两件事:
它应该返回一个
HTMLCanvasElement
,因此它可以像普通的Canvas API一样工作我还想向模块添加.Image属性,而无需构造类即可访问。
这是我正在等待的示例:
import * as Canvas from "canvas";
var Image = Canvas.Image;
var canvas = new Canvas(32, 32);
var ctx = canvas.getContext('2d');
ctx.drawImage and every regular functions...
[...]
我还想向
canvas.toDataURL()
添加一个可选的回调参数。我怎样才能做到这一点?
最佳答案
这样的事对于实例化类是有用的,而不必在每次使用new时都指定模块名称:
/// <reference path="./canvas.d.ts" />
import Canvas1 = Canvas.Canvas;
var canvas = new Canvas1(32, 32);