gpt4 book ai didi

javascript - 如何为模块编写 Typescript 类定义

转载 作者:行者123 更新时间:2023-11-28 05:29:37 25 4
gpt4 key购买 nike

我想为此模块编写一个 Typescript 定义文件 (.d.ts) https://www.npmjs.com/package/canvas

这就是我开始的内容:

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);

关于javascript - 如何为模块编写 Typescript 类定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39818317/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com