javascript - Cum incluzi un namespace Typescript într-un fișier de test?


Am un fișier Foo.ts care conține namespace Foo { ... } și câteva funcții exportate. Vreau să testez funcțiile din acest namespace folosind un fișier de test chiar lângă acesta, numit Foo.test.ts.

///<reference path="./Foo.ts" />
import './Foo';
console.log(typeof Foo)

Totuși, când încerc să rulez fișierul de test folosind mocha, primesc o eroare.

 ReferenceError: Foo is not defined

Cum pot include namespace-ul TypeScript astfel încât să pot accesa Foo.bar() și alte funcții exportate?

Răspuns #1

Se pare că există documentație destul de suficientă despre namespace-uri aici: Typescript Namespaces

Fișierul tău Foo.ts ar trebui să arate așa:

export namespace Foo {
 export function Bar() {
      return 'Bar';
 }
}

Și apoi în celălalt fișier:

import * as Foo from './Foo';
console.log(typeof Foo)

Cred că ai putea să faci asta și tu:

import { Foo } from './Foo';
console.log(typeof Foo)