入门两三天,我一直也纠结 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项目来说多此一举。