Sintaxe de módulo do Typescript
Em TypeScript, qual é a diferença entre estes dois:
declare module foo { ... }
e
declare namespace foo { ... }
Pelos documentos, tenho a impressão de que eles deveriam ser os mesmos e que o segundo é preferido. No entanto, vejo muitos arquivos .d.ts que usam o primeiro, o que me deixa inseguro.
Resposta #1
Eles são exatamente iguais. A palavra-chave module foi descontinuada em favor de namespace neste caso.
Mais
Isso ocorre porque module confunde o com o conceito de file modules : https://basarat.gitbooks.io/typescript/content/docs/project/modules.html