我在两个单独的文件中声明了两个类.
a.ts
export class AClass {
public constructor () {
console.log('AClass');
}
}
Run Code Online (Sandbox Code Playgroud)
b.ts
export class BClass {
public constructor () {
console.log('BClass');
}
}
Run Code Online (Sandbox Code Playgroud)
我想在一个模块中合并它们.我怎么能实现它?
///<reference path='a.ts' />
///<reference path='b.ts' />
module Common {
export class A extends AClass {}
export class B extends BClass {}
}
Run Code Online (Sandbox Code Playgroud)
说:
找不到名字'AClass'.
和
找不到名字'BClass'.
我可以导入课程
import AClass = require('a');
import BClass = require('b');
module Common {
}
Run Code Online (Sandbox Code Playgroud)
但我怎样才能正确导出它们呢?
在文档中找不到任何信息.请告诉我在一个模块中实现声明的最佳方法?先感谢您
Jos*_*ulf 19
我是这样做的:
米/ a.ts
export class A {
}
Run Code Online (Sandbox Code Playgroud)
米/ b.ts
export class B {
}
Run Code Online (Sandbox Code Playgroud)
米/ index.ts
export { A } from './a.ts';
export { B } from './b.ts';
Run Code Online (Sandbox Code Playgroud)
然后我做: consumer.ts
import { A, B } from './m';
Run Code Online (Sandbox Code Playgroud)
如果您声明类似于您展示的类,则将其包含在"全局"命名空间中.要在模块中声明类,只需将其包装在模块声明中:
module Common{
export class ClassA{}
}
Run Code Online (Sandbox Code Playgroud)
您可以在多个文件中重新声明模块,只为该模块创建一个javascript对象.
你export在你的类声明前面有:
export class AClass {
Run Code Online (Sandbox Code Playgroud)
这会将源文件转换为外部模块。这意味着您需要从另一个模块使用import/ require:
import a = require("a");
module Common {
export class A extends a.AClass {}
}
Run Code Online (Sandbox Code Playgroud)
请注意,它AClass似乎是 的成员,a因为这是我将其包含模块导入的内容。
或者,您可以a在它包含的单个类之后重命名模块,例如
AClass.ts
class AClass {
public constructor () {
console.log('AClass');
}
}
export = AClass;
Run Code Online (Sandbox Code Playgroud)
通过“分配”,export我们使该类成为模块的整个单一输出。因此在另一个模块中:
import AClass = require("AClass");
var a = new AClass(); // no prefix needed
Run Code Online (Sandbox Code Playgroud)
如果您的模块只导出单个类(或函数),这会更整洁。
| 归档时间: |
|
| 查看次数: |
16378 次 |
| 最近记录: |