3
首先,在使用Three.js后,此问题首先出现,我尝试/试图为我自己创建库的接口。用于“新”对象的TypeScript接口
不管怎么说,让我们说我们有JS代码:
var foo = new THREE.Vector3(0,0,0);
在打字稿,你可以代表三个对象:
interface IThreeJS {
Vector3(x: number, y: number, z: number): any;
}
declare var THREE: IThreeJS;
但是你可以看到我们有“:任何”返回从Vector3。如果我创建了一个IVector3接口并尝试执行'new THREE.Vector3(0,0,0):IVector3',我们就得到了一个'对构造函数有效的新表达式'。因此,不必返回“任何”
现在唯一的选择是让的Vector3对象关IThreeJS回报“任意”,做:
var foo: IVector3 = new THREE.Vector3(0,0,0);
那么,有没有反正有我IThreeJS接口的的Vector3方法有一个构造函数并返回一个IVector3?
噢,是的,如果我从头开始构建库,这将是一个合适的解决方案。我指的是创建一个接口,该接口位于已经在JavaScript中完成的已有库中。这是为了在我的TypeScript应用程序中更轻松地使用JS库。 –
这就是Steve的代码所做的。 'declare'关键字的意思是“我正在描述在别处实现的对象” –
是的 - 对不起,我没有在答案中说清楚。 – Fenton