打字稿新手,第一个项目。我仔细阅读了手册,但未能解决一个简单的问题。我有一个内部模块:
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
我做错了什么?
答案 0 :(得分:1)
md_vault_1_encoding.ts
中的其他地方,您有一个顶级import
或export
声明。
这会将您的文件转换为模块(AKA&#34;外部模块&#34;),这意味着您的文件不会在全局命名空间中放置任何属性。
您可以删除import
/ export
声明(可能不可能),也可以在命名空间(export
)中添加export module MDVault1Encoding { ...
修饰符,然后在fileio.ts
写
import { MDVault1Encoding } from './md_vault_1_encoding';