用于“新”对象的TypeScript接口

时间:2012-11-15 19:29:12

标签: typescript

首先,这个问题首先出现在使用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?

2 个答案:

答案 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);

祝你好运