我有一个现有的 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)会知道它正在处理什么类型的对象。
最佳答案
是的,这是可能的。您可以将 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...
}
关于typescript - 是否可以使用现有的 JavaScript 对象作为 TypeScript 中的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18255717/