最佳答案
我有一些代码:
baseTypes.ts
export namespace Living.Things {
export class Animal {
move() { /* ... */ }
}
export class Plant {
photosynthesize() { /* ... */ }
}
}
dog.ts
import b = require('./baseTypes');
export namespace Living.Things {
// Error, can't find name 'Animal', ??
export class Dog extends Animal {
woof() { }
}
}
tree.ts
// Error, can't use the same name twice, ??
import b = require('./baseTypes');
import b = require('./dogs');
namespace Living.Things {
// Why do I have to write b.Living.Things.Plant instead of b.Plant??
class Tree extends b.Living.Things.Plant {
}
}
这让人很困惑。我想让一堆外部模块都将类型贡献给相同的命名空间Living.Things
。似乎这根本不起作用——我在dogs.ts
中看不到Animal
。我必须在tree.ts
中写入完整的命名空间名称b.Living.Things.Plant
。它不能跨文件在同一个名称空间中组合多个对象。我怎么做呢?