处理特定输出的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中尝试维护样式与在生成的汇编代码中尝试维护样式相同。这很简单,是进化的进一步。