首先,这个问题首先出现在使用Three.js之后,我试图为了自己的目的而尝试构建接口。
无论如何,假设我们有JS代码:
var foo = new THREE.Vector3(0,0,0);
在TypeScript中,您可以将THREE对象表示为:
interface IThreeJS {
Vector3(x: number, y: number, z: number): any;
}
declare var THREE: IThreeJS;
然而,你可以看到我们有':任何'从Vector3返回。如果我创建一个IVector3接口并尝试做新的THREE.Vector3(0,0,0):IVector3'我们在构造函数上有一个新的表达式'。因此必须返回任何'
现在唯一的选择是让IThreeJS的Vector3对象返回' any'并做:
var foo: IVector3 = new THREE.Vector3(0,0,0);
那么,有没有让我的IThreeJS界面的Vector3方法有一个构造函数并返回一个IVector3?
答案 0 :(得分:6)
您也可以声明类和模块:
declare module THREE {
export class Vector3 {
constructor(x: number, y: number, z: number);
}
}
答案 1 :(得分:0)
export class Vector3 {
x: number;
y: number;
z: number;
constructor(x, y , z) {
this.x = x;
this.y = y;
this.z = z;
}
}
const position = new Vector3(0,0,0);