gpt4 book ai didi

javascript - 如何优化多个文件的输出 typescript 中的模块 namespace ,使用 gulp

转载 作者:行者123 更新时间:2023-12-03 06:44:18 27 4
gpt4 key购买 nike

如果在 typescript 项目中使用方法:一个文件 - 一个类,我遇到了一个问题,如下例所示。

文件 Greeter.ts

module App {
export class Greeter {
constructor(public greeting: string) { }
public greet() {
return "<h1>" + this.greeting + "</h1>";
}
};
}

文件 Program.ts

module App {
export class Program {
private _greeter = new Greeter("Hello, world!");
public main() {
document.body.innerHTML = this._greeter.greet();
}
};
}

结果文件

var App;
(function (App) {
var Greeter = (function () {
// class code
} ());
App.Greeter = Greeter;
})(App || (App = {}));

var App;
(function (App) {
var Program = (function () {
// class code
} ());
App.Program = Program;
})(App || (App = {}));
// point of entry
var program = new App.Program();
program.main();

可以看出重复声明App。我想排除任何像这样的重复:

var App;
(function (App) {
var Greeter = (function () {
// class code
} ());
App.Greeter = Greeter;

var Program = (function () {
// class code
} ());
App.Program = Program;
})(App || (App = {}));
// point of entry
var program = new App.Program();
program.main();

否则,当类数量较多时,输出文件中会出现大量多余代码。

也许我哪里错了?

----更新----

该项目是由 gulp-concatgulp-typescript 构建的,也许存在可以避免这种情况的包?

example on github

最佳答案

Otherwise, when a large amount of classes, it turns out a lot of excess code in the output file. Maybe I'm wrong somewhere?

没有。这是设计使然。基本上 typescript 允许每个部分独立运行。

警告

请尝试迁移到模块。更多 https://basarat.gitbooks.io/typescript/content/docs/tips/outFile.html

关于javascript - 如何优化多个文件的输出 typescript 中的模块 namespace ,使用 gulp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37815588/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com