2

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 语言语义的原因是什么?

4

1 回答 1

0

他的方式有点好,因为在所有这些文件共享变量之前有点奇怪。Meteor 将每个 javascript 文件视为一个文件。拥有较大的项目(>20 个 js 文件)使得模块化应用程序变得非常困难

我对打字稿不太确定,但建议在在咖啡脚本中声明之前使用它来制作全局内容: http@ ://docs.meteor.com/#coffeescript ,也许打字稿中有类似的东西?(来自coffeescript)@

@myFunction = -> 123
于 2013-04-05T06:32:32.290 回答