如何处理Sweet.js在打字稿输出中重命名顶级变量



打字稿编译

class ClassName { }

to

var ClassName = function () {
    function ClassName() {
    }
    return ClassName;
}();

我通过sweet.js运行该js代码,即使没有宏定义,也会产生类似的东西:

var ClassName$659 = function () {
    function ClassName$663() {
    }
    return ClassName$663;
}();

我知道,如果未使用顶级var,sweet.js不会重命名ClassName的首次出现,或者是否使用了其他名称,而不是用于构造函数函数,但这是打字稿编译器可以执行这些事情,不是我。

为什么这是一个问题

  1. 我不能再在HTML文件中使用ClassName。这不是我想经常做的事情,我当然可以没有能力,但我仍然想念它。
  2. 我想使用So-Far的宏不需要任何卫生重命名。但是现在,似乎我必须用自己的脚本撤消重命名。源地图无济于事,因为我已经需要打字稿的源图 -> JavaScript转换。

我的问题

有没有办法禁用sweet.js重命名的卫生重命名?有没有更好的方法来处理这个问题?

正如@anthonycalandra所建议的那样,使用 - 可读名称标志,解决了我的问题。

有没有办法禁用sweet.js的卫生重命名?

no。

有更好的解决这个问题的方法吗?

不确定。作为黑客,您可以使用脚本进行后处理文件搜索className $ xxx,然后添加

var ClassName = ClassName$xxx;

最新更新