相关疑难解决方法(0)

在使用AMD时,如何在d.ts文件中引用Typescript枚举?

我想定义一个typescript接口来表示一个错误.像这样的东西:

enum MessageLevel {
    Unknown,
    Fatal,
    Critical,
    Error,
    Warning,
    Info,
    Debug
}

interface IMyMessage {
    name: string;
    level: MessageLevel;
    message: string;
}
Run Code Online (Sandbox Code Playgroud)

这样可以正常工作.但是,现在(也许)我想在.d.ts文件中声明该接口,以便其他人可以使用它进行输入.但我不想在.d.ts文件中定义枚举,因为那将是实现而不是简单的输入信息.枚举应该在.ts文件中,我们称之为messageLevel.ts:

///<amd-module name='MessageLevel'/>

export enum MessageLevel {
    Unknown,
    Fatal,
    Critical,
    Error,
    Warning,
    Info,
    Debug
}
Run Code Online (Sandbox Code Playgroud)

此时我可以通过这种方式在我的d.ts打字文件中使用它:

import * as ml from "./MessageLevel";

interface IMyMessage {
    name: string;
    level: ml.MessageLevel;
    message: string;
}
Run Code Online (Sandbox Code Playgroud)

我可以使这项工作,但我不喜欢将实现文件导入打字文件的级别混合.我也不喜欢在打字文件中实际实现枚举的想法.

是否有一种干净的方法来保持实施和声明严格分开?

amd typescript

11
推荐指数
3
解决办法
7542
查看次数

标签 统计

amd ×1

typescript ×1