У меня есть код:
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
типы в одно и то же пространство имен, Living.Things
. Кажется, это не работает вообще - я не вижу Animal
в dogs.ts
. Я должен написать полное имя пространства имен b.Living.Things.Plant
в tree.ts
Не получается объединить несколько объектов в одном пространстве имен в файле. Как мне это сделать?