我是Typescript和模块处理的新手。在我的项目中,我使用Typescript编写开发浏览器库的代码。因此我使用AMD。以下是tsconfig.json
文件。
{
"compilerOptions": {
"target": "ES5",
"outDir": "out",
"module": "amd"
},
"files": [
"src/main.ts",
"src/communication.ts",
...
]
}
档案communication.ts
是:
export module MyProj.DataExchange {
export interface Communication {
connect(uri: string): void;
close(): void;
status: int;
}
}
我想在Communication
中使用main.ts
:
import communication = require('./communication');
export module MyProj {
export class Communicator
implements communication.MyProj.DataExchange.Communication {
...
}
}
我想避免使用整个签名communication.MyProj.DataExchange.Communication
。所以我尝试了类似的东西:
import communication = require('./communication').MyProj.DataExchange;
但它没有用。
我有一种感觉,我在这里做错了什么。在这里我的问题:
module
,我需要将我的组件分成名称空间。那么如果我做错了怎么正确设置命名空间呢?答案 0 :(得分:1)
在Typescript 1.4中引入了Type Aliases。
您的代码可能适合使用这样的别名:
import communication = require('./communication')
type Communication = communication.MyProj.DataExchange.Communication;
export module MyProj {
export class Communicator
implements Communication {
...
}
}