首页 > 解决方案 > TypeScript:重用前端(Angular)和后端的接口和类

问题描述

我有一个基于前端(Angular)和后端(使用 NestJS 开发 - 所以它是 NodeJS)的当前项目的 monorepo。我想为前端和后端使用自定义接口和类。例如,创建 DTO 以便我的前端知道我的后端的参数。

我考虑了一个公共文件夹,如下面的项目结构所示,但这不起作用,因为公共文件夹超出了 Angular (tsconfig) 的范围,因此自动完成不起作用

project
├── client (Angular)
├── server (NestJS)
└── common (client and server share specific interfaces and classes)

有没有人有这方面的经验?目前我将我的接口添加到两个文件夹中,但这很糟糕,因为如果我更新一个接口,我也必须替换另一个。

标签: angulartypescript

解决方案


在 TypeScript 3.0 中引入了“项目引用”。这可以帮助你实现你想要的(我用它在角度和云函数之间共享模型)

https://www.typescriptlang.org/docs/handbook/project-references.html

您需要做的是将外部项目引用添加到tsconfig.json应该从其他地方重用文件的项目的

{
  "compilerOptions": {
    // The usual config
  },
  "references": [
    { "path": "../my-other-project" }
  ]
}

推荐阅读