【发布时间】:2017-01-06 22:36:38
【问题描述】:
我正在尝试为库创建 TypeScript 定义文件。
该库有一个接受number 类型参数的方法,但该参数只能是一组特定的数字,所以我想让我的定义说它需要我使用@987654323 创建的枚举类型@。
但是,当我在 .d.ts 中定义我的类时,如下所示:
// definitions/SimpleDefinition.d.ts
/// <reference path="Enums.ts" />
declare class SampleDefinedClass {
public static SampleMethod(enumArg: Enums.SampleEnum): void;
}
我的枚举是这样的:
// definitions/Enums.ts
export const enum SampleEnum {
Item1 = 1,
Item2 = 2
}
我有一个index.d.ts 将两者联系在一起:
// definitions/index.d.ts
/// <reference path="Enums.ts" />
/// <reference path="SampleDefinition.d.ts" />
编译器告诉我这个:
../definitions/SampleDefinition.d.ts(4,41): error TS2503: Cannot find namespace 'Enums'.
我尝试将导入添加到我的 SampleDefinition.d.ts 的顶部,但这导致我的代码文件中无法正确识别该定义。虽然 Visual Studio 和 Visual Studio 代码在实际导入时不会显示错误。
import Enums = require("./Enums");
Main.ts(6,1): error TS2304: Cannot find name 'SampleDefinedClass'.
我尝试了更多的东西,比如使用 AMD 和移动文件,但似乎无法让它工作。有没有办法做到这一点?还是我必须找到另一种方法来做/放弃?
我用这个精确的样本创建了一个GitHub repo。
【问题讨论】:
标签: typescript commonjs typescript-typings