[LayaAirIDE 2.0]laya 2.0 可以支持 typescript namespace 吗

laya2.0好像不能用typescript  namespace关键字了,运行时找不到类型。

 laya2.0 用了gulp + browserify + tsify 编译 typescript。
这个方案是向javascript es6看齐。es6的特点是一个js就是一个模块。
全局namespace在laya 2.0不再支持。实践中我就没办法用上namespace。module关键字倒是可以用(要import)。
其实作为游戏开发者,laya 1.7 的全局namespace 更好用一些,import有点烦。
 
是不是tsify 搞的?我不懂这些东西。
已邀请:

新哥

赞同来自:

楼主这个问题解决了吗,我也遇到这个坑了,还在找解决方案。 原来项目里面很多namespace的用法,放在在2.0编译不了,坑大发了

186*****256

赞同来自:

入门两三天,我一直也纠结 namespace,也一直没人回答我,尽是给我讲很多大道理。没一个人命中主题的。刚开始我认为命名空间很重要,多写了几遍代码才发现命名空间不是很重要,我们的工程实际写代码的时候也没必要用,因为每个文件的作用域都是局部的,当前文件有效。同一工程不同文件同类名也没关系,所以 namespace 就没这么重要了。因为可以 import { 别名 } from "路径";所以即使同名没啥问题,测试跑了也没问题;
折腾了一个下午加晚上,实际 namespace 可以这么写的;
// 文件1 a.ts
namespace game {
export class A {
}
}
export = game;

// 文件2 b.ts
namespace game {
export class B {
}
}
export = game;

// 文件3 c.ts
import * as game from "./a.ts"
import * as game2 from ".b.ts
new game.A()
new game2.B()

// 文件4 d.ts
import { A } from "./a.ts"
import { B } from "./b.ts"
new A()
new B()

// PS: 对比 c.ts d.ts 可以看出有无 namespace 没啥优势。
// namespace 相对于laya项目来说多此一举。

牛唠叨

赞同来自:

我是楼主,还是拥抱新时代把。
 
全局namespace主要的问题是依赖先后问题。几乎typescript领域没人研究这个了。export/import的方式在vscode里面支持的很良好。用Laya.xxxx也可以直接引用Laya库,类似全局namespace。
 
就是自己的代码还是得用import export来支持。

赞同来自:

感觉namespace才是新时代吧,写起来也更方便。
为了支持namespace,参考网上的其他typescript项目,自己写了gulpfile文件编译,已经可以编译调试和断点。正在研究怎么和发布流程相结合。

要回复问题请先

商务合作
商务合作