打字稿。如何在一个模块中导出两个 类(在单独的文件中)?
Typescript. How to export two classes (in separate files) in one module?
我在两个单独的文件中声明了两个 类。
a.ts
export class AClass {
public constructor () {
console.log('AClass');
}
}
b.ts
export class BClass {
public constructor () {
console.log('BClass');
}
}
我想将它们合并到一个模块中。我如何实现它?
///<reference path='a.ts' />
///<reference path='b.ts' />
module Common {
export class A extends AClass {}
export class B extends BClass {}
}
说:
Cannot find name 'AClass'.
和
Cannot find name 'BClass'.
我可以导入类
import AClass = require('a');
import BClass = require('b');
module Common {
}
但是我怎样才能正确导出它们呢?
在文档中找不到任何信息。请告诉我在一个模块中实现声明的最佳方式?提前谢谢你
如果您像展示的那样声明 class,则将其包含在 'global' 命名空间中。要在模块内声明 class 只需将其包装在模块声明中:
module Common{
export class ClassA{}
}
您可以在多个文件中重新声明模块,只会为该模块创建一个 javascript 对象。
您的 class 声明前面有 export
:
export class AClass {
这会将源文件变成外部模块。这意味着您将需要使用另一个模块中的 import
/require
:
import a = require("a");
module Common {
export class A extends a.AClass {}
}
请注意 AClass
似乎是 a
的成员,因为这就是我将其包含模块导入的内容。
或者,您可以在包含的单个 class 之后重命名 a
模块,例如
AClass.ts
class AClass {
public constructor () {
console.log('AClass');
}
}
export = AClass;
通过"assigning"到export
我们让class成为模块的整个单输出。因此在另一个模块中:
import AClass = require("AClass");
var a = new AClass(); // no prefix needed
如果您的模块只导出一个 class(或函数),这会更简洁。
我是这样做的:
m/a.ts
export class A {
}
m/b.ts
export class B {
}
m/index.ts
export { A } from './a.ts';
export { B } from './b.ts';
然后我做:
consumer.ts
import { A, B } from './m';
我在两个单独的文件中声明了两个 类。
a.ts
export class AClass {
public constructor () {
console.log('AClass');
}
}
b.ts
export class BClass {
public constructor () {
console.log('BClass');
}
}
我想将它们合并到一个模块中。我如何实现它?
///<reference path='a.ts' />
///<reference path='b.ts' />
module Common {
export class A extends AClass {}
export class B extends BClass {}
}
说:
Cannot find name 'AClass'.
和
Cannot find name 'BClass'.
我可以导入类
import AClass = require('a');
import BClass = require('b');
module Common {
}
但是我怎样才能正确导出它们呢?
在文档中找不到任何信息。请告诉我在一个模块中实现声明的最佳方式?提前谢谢你
如果您像展示的那样声明 class,则将其包含在 'global' 命名空间中。要在模块内声明 class 只需将其包装在模块声明中:
module Common{
export class ClassA{}
}
您可以在多个文件中重新声明模块,只会为该模块创建一个 javascript 对象。
您的 class 声明前面有 export
:
export class AClass {
这会将源文件变成外部模块。这意味着您将需要使用另一个模块中的 import
/require
:
import a = require("a");
module Common {
export class A extends a.AClass {}
}
请注意 AClass
似乎是 a
的成员,因为这就是我将其包含模块导入的内容。
或者,您可以在包含的单个 class 之后重命名 a
模块,例如
AClass.ts
class AClass {
public constructor () {
console.log('AClass');
}
}
export = AClass;
通过"assigning"到export
我们让class成为模块的整个单输出。因此在另一个模块中:
import AClass = require("AClass");
var a = new AClass(); // no prefix needed
如果您的模块只导出一个 class(或函数),这会更简洁。
我是这样做的:
m/a.ts
export class A {
}
m/b.ts
export class B {
}
m/index.ts
export { A } from './a.ts';
export { B } from './b.ts';
然后我做: consumer.ts
import { A, B } from './m';