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 のインスタンスである変数を宣言したいと考えています。タイプ「any」として定義することもできますが、それでは自動提案が得られず、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 クラスの形状を定義する定義ファイル (Canvas2D.d.ts) を作成し、代わりにそれを参照することができます。

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

元:

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