首先,这个问题首先出现在使用Three.js之后,我尝试/尝试为我自己的库构建接口.
无论如何,让我们说我们有JS代码:
var foo = new THREE.Vector3(0,0,0);
Run Code Online (Sandbox Code Playgroud)
在TypeScript中,您可以将THREE对象表示为:
interface IThreeJS {
Vector3(x: number, y: number, z: number): any;
}
declare var THREE: IThreeJS;
Run Code Online (Sandbox Code Playgroud)
但是你可以看到我们从Vector3返回':any'.如果我创建一个IVector3接口并尝试执行'new THREE.Vector3(0,0,0):IVector3',我们会得到一个'关于构造函数的有效的新表达式'.因此必须返回'任何'
现在唯一的选择是让IThreeJS的Vector3对象返回'any'并执行:
var foo: IVector3 = new THREE.Vector3(0,0,0);
Run Code Online (Sandbox Code Playgroud)
那么,无论如何让我的IThreeJS接口的Vector3方法有一个构造函数并返回一个IVector3?
您也可以声明类和模块:
declare module THREE {
export class Vector3 {
constructor(x: number, y: number, z: number);
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1746 次 |
最近记录: |