I have some code:
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 {
}
}
This is all very confusing. I want to have a bunch of external modules all contribute types to the same namespace, Living.Things
. It seems that this doesn’t work at all — I can’t see Animal
in dogs.ts
. I have to write the full namespace name b.Living.Things.Plant
in tree.ts
. It doesn’t work to combine multiple objects in the same namespace across file. How do I do this?