首先,这个问题是在使用 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 接口并尝试执行“new THREE.Vector3(0,0,0): IVector3”,我们会得到一个“构造函数上有效的新表达式”。因此必须返回“任何”
现在唯一的选择是让 IThreeJS 的 Vector3 对象返回 'any' 并执行以下操作:
var foo: IVector3 = new THREE.Vector3(0,0,0);
那么,无论如何让我的 IThreeJS 接口的 Vector3 方法有一个构造函数并返回一个 IVector3?