因此,我的问题是,我试图使用剔除-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,而ko.yourMethod就不能工作了。
所以我有点困惑,因为我喜欢ES6语法,我的代码都是使用ES6导入和导出编写的,但由于我依赖于非ES6导出模块,我似乎找不到一个可行的中间点,要么删除剔除的默认导出,输出文件中不包含任何要求,要么添加默认导出并添加default属性。
有办法让我的蛋糕在这里吃吗?
发布于 2015-08-12 15:37:14
你可能想
import * as ko from "knockout-es5";您的原始导入与import {default as ko} from ...相同。
有关语法的全面解释,请参阅http://www.2ality.com/2014/09/es6-modules-final.html。
https://stackoverflow.com/questions/31965011
复制相似问题