【问题标题】:typescript es6 import syntax output es5 commonjs module issuetypescript es6导入语法输出es5 commonjs模块问题
【发布时间】:2015-08-12 23:37:14
【问题描述】:

所以我遇到的问题是我正在尝试使用 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 导出模块,我似乎无法找到一个可行的中间立场,我要么删除敲除默认导出并且输出文件中不包含任何要求,或者我添加默认导出并添加default 属性。

那么有没有办法让我的蛋糕在这里吃呢?

【问题讨论】:

    标签: knockout.js typescript commonjs


    【解决方案1】:

    你可能想要

    import * as ko from "knockout-es5";
    

    您的原始导入与import {default as ko} from ... 相同。

    有关语法的全面说明,请参阅http://www.2ality.com/2014/09/es6-modules-final.html

    【讨论】:

    • 啊!我一直认为as ko 是打字而不是作业,谢谢您的帮助。
    猜你喜欢
    • 2015-06-18
    • 1970-01-01
    • 2018-02-06
    • 2016-06-12
    • 2022-01-20
    • 2017-07-08
    • 2019-07-06
    • 2020-03-21
    • 2016-07-30
    相关资源
    最近更新 更多