如何创建一个打字稿模块定义,以便将模块依赖项导出为其成员?

时间:2017-05-26 17:57:51

标签: typescript

请考虑以下场景:我正在尝试为两个commonJS模块A和B创建打字稿定义.B依赖于A,并且为了方便起见,B直接将A导出为属性B.A所以用户不需要在其代码中明确require('A')

我的问题是,我如何编写B的打字稿定义以便将A作为B的属性导出?以下是我的尝试:

A有出口的各种成员:

export const foo = 'bar';

然后,在B中我尝试过:

import * as A from 'A';
export A;

import * as a from 'A'; 
export var A : a;

但是,这些都不是有效的打字稿模块定义。

目标是,在消费B的打字稿代码中,能够写出:

import B = require('B');
console.log(B.A.foo);

创作B模块定义的正确方法是什么,以便将A作为B的属性导出?

1 个答案:

答案 0 :(得分:1)

A.ts

export let foo = 1;

B.d.ts

import * as A from "./A";

export {
    A
}

使用

import B from "./B";

console.log(B.A.foo);