我有以下设置:
// enums.ts
export enum DocumentType {
Email = 0,
Unknown = 1
}
-
// remote.ts
/// <reference path="./remote.d.ts" />
import enums = require('./enums');
class Remote implements test.IRemote {
public docType: enums.DocumentType;
constructor() {
this.docType = enums.DocumentType.Unknown;
}
}
export = Remote;
-
// remote.d.ts
import * as enums from './enums';
declare module test {
export interface IRemote {
docType: enums.DocumentType;
}
}
但是当我运行 tsc 时,我得到了Cannot find namespace 'test'
来自 Remotes.ts。我缺少什么?
其他可能有用的信息:我最近从 Typescript 1.5 升级到 Typescript 1.8,并将 const 枚举的使用替换为普通枚举,如示例中所示。
您需要从导出内部模块remote.d.ts
还有:
远程.d.ts
import * as enums from './enums';
export declare module test {
export interface IRemote {
docType: enums.DocumentType;
}
}
这是因为你有外部模块remote
(当存在顶级时,文件本身就是模块import
or export
语句),导出时可以使用哪些类型和其他符号,就像如何IRemote
从模块导出test
.
换句话说,外部模块中有一个内部模块,但内部模块未导出。此外,IRemote 接口实际上是双重包装的,并且有资格获得全名remote.test.IRemote
.
注意:IMO,如果您不小心,在同一项目中混合内部模块和外部模块可能会导致许多问题和不便,因此应尽可能避免。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)