在TypeScript中开发/组织节点模块

时间:2014-05-30 15:56:56

标签: node.js typescript node-modules

我想在TypeScript中开发一个节点模块,但是我遇到了所有可能需要,导入等选项的问题。

我现在正在做的是将每个类和接口都放在它自己的文件中。所以我需要要求所有依赖,这是一种愚蠢的,因为我正在键入两次类名,如下所示:

import Target = require('./Target');

export interface IFace {

    getTarget(): Target.Target
}

我可以写import t = require('./Target');但我需要写t.Target,我认为这也很难看。

而且我也不能给它一个模块名称(比如FaceApp),因为当我需要导入两个文件时,就会出现命名冲突。

显然如果一切都存在于一个文件中就不需要了,但我认为这远非最优。

那么你们如何在TypeScript中组织节点模块?我很高兴听到你的建议。

2 个答案:

答案 0 :(得分:1)

您可以使用export =语法来避免名称重复。即:

class Target{}
export = Target;

而不是export class Target

grunt-ts变换器也可以帮助你处理import语句爆炸:https://github.com/grunt-ts/grunt-ts/issues/85#issue-29515541

答案 1 :(得分:0)

recommended by TypeScript的方式

export default class Target {}

然后你可以使用

进行真正的打字稿导入
import Target from './Target'

或者,您可以重命名

import NewName from './Target'

另请注意,如果文件相关,您可以从文件中导出多个内容

export class SomeClass {}
export class OtherClass {}

在导入时,您可以更改名称

import { SomeClass as MySomeClass, OtherClass as MyOtherClass } from './Target'