Meteor 0.6.0 中引入的文件级 JavaScript 变量作用域破坏了使用 TypeScript(以及 CoffeeScript 和可能的其他转译器)编写的项目和包。有没有办法禁用它?
例如,这个打字稿代码:
declare var Meteor: any;
module Model {
export var Players = new Meteor.Collection('players');
}
生成这个不再起作用的 JavaScript,因为 Model 不再被认为是全局的:
var Model;
(function (Model) {
Model.Players = new Meteor.Collection('players');
})(Model || (Model = {}));
前置this.Model = null;
是一种解决方法,但它是多余的,您必须将其应用于与 Meteor 一起使用的所有代码(它至少损坏了我的一个 Meteorite 包)。
引入 Meteor 特定 JavaScript 语言语义的原因是什么?