我有一个现有的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)会知道它正在处理什么类型的对象。
答案 0 :(得分:2)
是的,这是可能的。您可以将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...
}