处理特定输出的TypeScript编译器

处理特定输出的TypeScript编译器,typescript,Typescript,TypeScript非常庞大。我遇到的最大问题是编译后的javascript代码的输出 多年来,我创建了我的特殊代码样式,我不想使用预定义的扩展,如webpack、AMD、系统和其他。在我的脑海中,我会想“嘿,为什么webpack会生成如此难看的代码,并用上千个多边形填充重载脚本?” 我不想使用TypeScript,但我想要干净的代码。代码不是为人类编写的,一定不可读,但这是我大脑中的一个特殊想法,它说“不要使用打字脚本,代码会被丢弃” 目前,当我设计一个Javascript“类”时,它看起来是

TypeScript
非常庞大。我遇到的最大问题是编译后的javascript代码的输出

多年来,我创建了我的特殊代码样式,我不想使用预定义的扩展,如
webpack
AMD
系统
和其他。在我的脑海中,我会想“嘿,为什么webpack会生成如此难看的代码,并用上千个多边形填充重载脚本?”

我不想使用TypeScript,但我想要干净的代码。代码不是为人类编写的,一定不可读,但这是我大脑中的一个特殊想法,它说“不要使用打字脚本,代码会被丢弃”

目前,当我设计一个Javascript“类”时,它看起来是这样的:

const MyClass = function MyClass() {
    let _whatever = null;

    this.init = function init() {
        _whatever = 1234;
    };

    this.getWatEver = function getWhatEver() {
        return _whatever;
    };

    this.init.apply(this, arguments);
};

new MyClass();
TypeScript有一些方法来定义编译器的输出吗

WebpackforSample将一些不相关的代码放入编译后的源代码中,如

defineProperty(导出,“\uu esModule”{value:true})


和其他-我想要有质量的代码

编译器输出在进行评估时,应该提供预期的符合规范的行为(有一些权衡),同时具有合理的占用空间。它不一定要符合开发者对质量的个人感知,这是主观的

有许多方法可以提供额外的输出。所有这些选项都有特定的用途,默认情况下不启用那些不重要的选项

例如,并导致额外的输出;默认情况下不启用它

这条线

Object.defineProperty(exports, "__esModule", { value: true });
添加的
module
选项设置为
commonjs
(ES5目标的默认设置),对于与commonjs模块的互操作性至关重要

如果ES模块未通过TypeScript(网页包、本机ES模块等)进行处理,则可以在
module
选项设置为
es6
esnext
的情况下跳过它


module
选项设置为
none
时,可以跳过所有与模块相关的输出。顾名思义,此选项意味着根本不能使用模块。

请记住,您不知道此输出的用途并不意味着它是“垃圾”。Webpack完成了这项工作(其他常用工具也是如此),它的工作是使输出高效,而不是美观(不确定您所说的是哪种多边形填充,但Webpack的占用空间很小)。我同意Adrian的观点,您不会去MSIL查看它是否漂亮,也不会去汇编代码查看它是否创建得漂亮。这和我在汇编程序中编写的一样,当我决定在Delphi中编写代码时,我没有抱怨汇编程序生成的代码,因为开发速度和生成代码的可验证性非常重要。在JavaScript中尝试维护样式与在生成的汇编代码中尝试维护样式相同。这很简单,是进化的进一步。