【问题标题】:How do you include a Typescript namespace in a test file?如何在测试文件中包含 Typescript 命名空间?
【发布时间】:2020-04-26 12:06:21
【问题描述】:

我有一个Foo.ts 文件,其中包含namespace Foo { ... } 和一些导出函数。我想使用一个名为Foo.test.ts 的测试文件来测试这个命名空间中的函数。

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

但是,当我尝试使用 mocha 运行测试文件时,出现错误。

 ReferenceError: Foo is not defined

如何包含 typescript 命名空间,以便我可以访问 Foo.bar() 和其他导出的函数?

【问题讨论】:

    标签: javascript typescript unit-testing mocha.js


    【解决方案1】:

    看起来这里有足够多的关于命名空间的文档:Typescript Namespaces

    您的 Foo.ts 应如下所示:

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

    然后在另一个文件中:

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

    我认为你可以这样做:

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

    【讨论】:

    • 我阅读了该文档(在其他几十页中),但它从未解释过 export namespace Foo 与 import { Foo } from './Foo' 的神奇组合
    • @Xeoncross 我明白了。您想在另一个文件中使用的任何内容都需要“导出”,否则在调用文件中将不可用。
    猜你喜欢
    • 2011-07-24
    • 2017-01-13
    • 2016-12-18
    • 1970-01-01
    • 2014-04-26
    • 1970-01-01
    • 1970-01-01
    • 2014-03-22
    • 1970-01-01
    相关资源
    最近更新 更多