所以我遇到的问题是我正在尝试使用knockout-es5并输出到常见的js格式,但我正在使用es6语法编写所有内容。
现在我遇到的问题是我做了以下事情:
import ko from "knockout-es5";
希望通过tsc运行时的输出为:
var ko = require("knockout-es5");
然而,首先它不会编译因为knockout-es5
描述符文件没有模块导出,所以我进去并在其末尾添加了以下内容:
declare var ko: KnockoutStatic;
export module "knockout-es5" {
export = ko;
}
这看起来似乎有效,但是如果你看一下它被使用的输出它会使它ko.default.yourMethod
而不是ko.yourMethod
然后不起作用。
所以我有点困惑,因为我喜欢ES6语法,而且我的代码都是使用ES6导入和导出编写的,但由于我依赖于非ES6导出的模块,我似乎无法找到可行的中间层,我要么删除knockout默认导出并且输出文件中不包含require,或者我添加了默认导出并添加了default
属性。
那么有没有办法让我的蛋糕在这里吃?
答案 0 :(得分:1)
你可能想要
import * as ko from "knockout-es5";
您的原始导入与import {default as ko} from ...
相同。
有关语法的全面说明,请参阅http://www.2ality.com/2014/09/es6-modules-final.html。