从Typescript声明文件中的模块导出默认值

时间:2017-01-10 15:19:52

标签: typescript

假设我有一个声明文件foo.d.ts

declare namespace foo {
  interface Bar {
    (): void;
  }
}

declare var foo: foo.Bar;
export default foo;

如果我编译它:

import Foo from './foo';
Foo();

结果输出为:

"use strict";
var foo_1 = require('./foo');
foo_1["default"]();

但是,此代码不会运行,因为foo_1是一个函数,并且没有属性default。如何将输出设为foo_1()而不是foo_1["default"]()

1 个答案:

答案 0 :(得分:3)

使用

export = foo;

而不是声明文件中的export default foo;

并在导入时使用import require

import Foo = require('./foo');

Export assignment/import require是typescript中的特殊语法,用于处理带有导出的节点模块,如

module.exports = function someFunction() {}