假设我有一个声明文件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"]()
?
答案 0 :(得分:3)
使用
export = foo;
而不是声明文件中的export default foo;
并在导入时使用import require
:
import Foo = require('./foo');
Export assignment/import require是typescript中的特殊语法,用于处理带有导出的节点模块,如
module.exports = function someFunction() {}