在编写打字脚本时,关于如何实际构造代码的信息似乎几乎不存在.

我想在node中创建一个服务器.它有外部依赖项,比如socket.伊奥.服务器太大了,无法将其全部放在一个文件中(我想大多数情况下都是这样),所以我决定将其拆分.我想把每个类都放在一个单独的文件中,我希望能够在整个项目中使用它们,而不需要做一些疯狂的事情,比如

import vector = require("vector.ts");
var vec = new vector.Vector();

我该怎么做?到目前为止,我似乎在两条战线上作战.当我让tsc实际编译时,node会在运行时抱怨,但当我修改代码使node工作时,它不会编译.

如果有人能抽出时间一步一步地完成这件事,我将不胜感激.

推荐答案

实际上你可以(现在):

档案:1班.ts:

export class Class1 {
  name: string;

  constructor(name: string){
      this.name = name;
  }
}

档案:class2.ts:

export class Class2 {
    name: string;
}

合并模块文件:类.ts:

export { Class1 } from "./class1";
export { Class2 } from "./class2";

正在使用的文件:

import { Class1, Class2 } from "./classes";

let c1 = new Class1("Herbert");
let c2 = new Class2();

通过这种方式,每个文件可以有一个类(或接口).然后在一个整合模块文件(classes.ts)中引用构成"模块"的所有实体.

现在,您只需引用(导入)单个模块文件即可访问所有类.文件之间仍然有一个整洁的划分.

希望这对仍在寻找的人有所帮助.

Typescript相关问答推荐

在控制器中使用@ DeliverGuards时实现循环依赖项时未定义的依赖项

TypScript错误:类型{ children:ReactNode; }与动态React组件中的IntrinsicLedger类型没有共同的属性

之间是否有区别:例如useEffect()React.useEffect()

从接口创建类型安全的嵌套 struct

node—redis:如何在redis timeSeries上查询argmin?

webpack错误:模块找不到.当使用我的其他库时,

更新为Angular 17后的可选链运算符&?&问题

与字符串文字模板的结果类型匹配的打字脚本

如何使用泛型自动推断TS中的类型

如何在LucideAngular 添加自定义图标以及如何使用它们

如何表示多层深度的泛型类型数组?

TypeScrip省略了类型参数,仅当传递另一个前面的类型参数时才采用默认类型

找不到财产的标准方式?

如何键入派生类的实例方法,以便它调用另一个实例方法?

在构建Angular 应用程序时,有没有办法通过CLI传递参数?

重写返回任何

作为参数的KeyOf变量的类型

完全在类型系统中构建的东西意味着什么?

为什么我会得到一个;并不是所有的代码路径都返回一个值0;switch 中的所有情况何时返回或抛出?(来自vsCode/TypeScript)

Karma Angular Unit测试如何创建未解析的promise并在单个测试中解决它,以判断当时的代码是否只在解决后运行