如何创建嵌套的d.ts文件?

时间:2018-10-25 18:43:16

标签: typescript import namespaces export declare

我正在构建一个可以在JS和TS中使用的模块。 据我所知,在JS中创建模块时,请创建一个单独的d.ts文件。(当然可以使用TS并编译为JS)。无论如何,我选择制作d.ts文件。

例如。

// common.d.ts

declare namespace common {
  export const method: string => string;
}
export = common;

下一步

// utils.d.ts
import * as u from './common';
declare namespace utils {
  export const common: u // Causing an error.
}
export = utils;

我收到此错误:The namespace 'u' can not be used as a format. 我想写这个来统一导入地址。

import { common as u } from '/utils';
u.method('Any params');

我想,也许我可以从t.ds文件中获取声明并进行分配。但是我不知道怎么做。有人帮我!

1 个答案:

答案 0 :(得分:0)

export const common: u替换export const common = u将消除错误,但仅复制u的值含义; common.d.ts中定义的接口和类型别名将无法通过此common常量进行访问。 export import common = u更好:它复制所有含义。但是大多数人会认为,删除命名空间和导出分配的毫无意义的组​​合,并将单个导出从命名空间移至模块的顶层,会更好。那么您可以使用ECMAScript export as语法代替TypeScript别名。

// common.d.ts
export const method: string => string;

// utils.d.ts
import * as u from './common';
export { u as common };