2

我有一个现有的 JavaScript 对象。我想在 TypeScript 中使用它作为一种类型,但看不到任何方法。例如,我有一个这样的 JavaScript 对象构造函数:

function Canvas2D(canvas)
{
    var context = canvas.getContext("2d");
    this.clear = function() { context.clearRect(canvas.width, canvas.height); }
    // lots more methods follow...
}

在我的 TypeScript 中,我想声明一个变量,它是 Canvas2D 的一个实例。我可以将它定义为类型“任何”,但这并没有给我自动建议,并且有点否定使用 TypeScript 的好处。

class MyApp
{
    private canvas2d: any;
    // I want this instead
    //private canvas2d: Canvas2D;

    constructor(aCanvas) { this.canvas2d = new Canvas2D(aCanvas); }
}

有没有办法在 TypeScript 中做到这一点?

在 JavaScript 中,我可以这样做:

var canvas2D = new Canvas2D(aCanvas);

它(Visual Studio)会知道它正在处理什么类型的对象。

4

1 回答 1

3

对的,这是可能的。您可以将Canvas2D对象移植到 typescript 类并引用该文件

/// <reference path="Canvas2D.ts" />

在 MyApp 文件中。

或者

您可以创建一个定义文件 (Canvas2D.d.ts) 来定义 Canvas2D 类形状并引用它。

/// <reference path="Canvas2D.d.ts" />

前任:

declare class Canvas2D {
    constructor(elem: HTMLCanvasElement);
    clear();
    // Lots more methods here...
}
于 2013-08-15T15:57:01.613 回答