在引用文件中写入时无法识别内部模块

时间:2016-03-21 13:32:41

标签: module typescript

打字稿新手,第一个项目。我仔细阅读了手册,但未能解决一个简单的问题。我有一个内部模块:

wrap_parameters format: [:json, :multipart_form]

然后我在这个模块之外有客户端代码调用这些函数,就像在实例方法中一样:

module MDVault1Encoding {
    export function encode(store:Store, pwHash: Buffer): string {
        (...)
        return (...);
    }

    export function decode(encoded:string, pwHash: Buffer): Store {
        (...)
        return (...);
    } 
}

当模块定义和客户端代码存在于同一this.store = MDVault1Encoding.decode(container.data, this.pwHash); 文件中时,一切顺利。

但是当我将模块放入.ts文件和md_vault_1_encoding.ts中的客户端代码时,在后者的标题中添加fileio.ts,就会出错。

/// <reference path="./md_vault_1_encoding.ts" />编译得很整齐,但是md_vault_1_encoding.ts会产生这样的结果:

fileio.ts

我做错了什么?

1 个答案:

答案 0 :(得分:1)

md_vault_1_encoding.ts中的其他地方,您有一个顶级importexport声明。

这会将您的文件转换为模块(AKA&#34;外部模块&#34;),这意味着您的文件不会在全局命名空间中放置任何属性。

您可以删除import / export声明(可能不可能),也可以在命名空间(export)中添加export module MDVault1Encoding { ...修饰符,然后在fileio.ts

import { MDVault1Encoding } from './md_vault_1_encoding';