1

我正在使用 tsd 从绝对类型下载定义并编译成 tsd.d.ts 文件。我还不能构建,但是当我使用这样的导入时:

import * as THREE from "three"

Visual Studio 智能感知很高兴。但是,这不适用于Detector.js(用于检测 webgl 支持的 three.js 库),带有.d.ts 文件。我不确定问题是什么,但我确实注意到三个.d.ts 文件导出了一个模块(三个),而检测器.d.ts 文件只导出了一个对象:

三.d.ts

...
declare module 'three' {
    export=THREE;
}

探测器.d.ts

interface DetectorStatic {
    canvas: boolean;
    webgl: boolean;
    workers: boolean;
    fileapi: boolean;

    getWebGLErrorMessage(): HTMLElement;
    addGetWebGLMessage(parameters?: {id?: string; parent?: HTMLElement}): void;
}

declare var Detector: DetectorStatic;

这会改变我应该如何导入检测器吗?

4

1 回答 1

2

对于这样的情况,您可以定义自己的。对于大多数项目,我通常有一个临时.d.ts文件,我会抛出我需要的随机声明(小接口、模块等)。

您应该能够简单地在代码中的某处定义模块。

declare module "path/to/detector" {
    export = DetectorStatic;
}
于 2015-08-27T21:03:58.903 回答