首先,这个问题是在我尝试/尝试为自己的库构建接口的Three.js工作之后出现的。
不管怎样,假设我们有JS代码:
var foo = new THREE.Vector3(0,0,0);在TypeScript中,您可以将这三个对象表示为:
interface IThreeJS {
Vector3(x: number, y: number, z: number): any;
}
declare var THREE: IThreeJS;但是,正如您所看到的,我们有从Vector3返回的':any‘。如果我创建一个新的接口并尝试执行“IVector3 THREE.Vector3(0,0,0):IVector3”,我们会得到一个“构造函数上有效的新表达式”。因此必须返回“any”
现在唯一的替代方法是让IThreeJS的Vector3对象返回'any‘并这样做:
var foo: IVector3 = new THREE.Vector3(0,0,0);那么,有没有办法让我的IThreeJS接口的Vector3方法有一个构造函数并返回一个IVector3呢?
发布于 2012-11-16 03:53:01
您还可以声明类和模块:
declare module THREE {
export class Vector3 {
constructor(x: number, y: number, z: number);
}
}发布于 2018-06-09 05:23:24
export class Vector3 {
x: number;
y: number;
z: number;
constructor(x, y , z) {
this.x = x;
this.y = y;
this.z = z;
}
}常量位置=新的Vector3(0,0,0);
祝好运
https://stackoverflow.com/questions/13404726
复制相似问题