#javascript #node.js #canvas #typescript
#javascript #node.js #холст #typescript
Вопрос:
Я хочу написать файл определения 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)
Я также хочу добавить в класс две вещи:
- Он должен возвращать an
HTMLCanvasElement
, чтобы он мог работать так же, как обычный Canvas api - Я также хочу добавить .Свойство изображения для модуля, которое доступно без создания класса.
Вот пример того, чего я жду:
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()
вызова.
Как я могу это сделать?
Ответ №1:
Что-то вроде этого будет работать для создания экземпляра класса без необходимости указывать имя модуля каждый раз, когда вы используете new:
/// <reference path="./canvas.d.ts" />
import Canvas1 = Canvas.Canvas;
var canvas = new Canvas1(32, 32);