Angular 在Typescript项目之间共享接口

Angular 在Typescript项目之间共享接口,angular,typescript,nestjs,Angular,Typescript,Nestjs,我正在开发两个项目:Angular客户端和NestJS服务器,它们最终使用相同的接口,比如用户、产品等 我正在寻找一种方法,不在这两个项目中复制这些接口文件,而是拥有一个托管共享代码的共同化项目,并由具有自己的构建设置的服务器和客户端项目引用 你有什么提示吗?谢谢 如果两个项目都使用单个存储库:我将在服务器中定义共享接口,并在客户端中使用导入类型 如果接口不在单个存储库中,我不会共享接口。如果两个项目都使用单个存储库:我将在服务器中定义共享接口,并在客户端中使用导入类型 如果接口不在单个存储库中

我正在开发两个项目:Angular客户端和NestJS服务器,它们最终使用相同的接口,比如用户、产品等

我正在寻找一种方法,不在这两个项目中复制这些接口文件,而是拥有一个托管共享代码的共同化项目,并由具有自己的构建设置的服务器和客户端项目引用


你有什么提示吗?谢谢

如果两个项目都使用单个存储库:我将在服务器中定义共享接口,并在客户端中使用导入类型


如果接口不在单个存储库中,我不会共享接口。

如果两个项目都使用单个存储库:我将在服务器中定义共享接口,并在客户端中使用导入类型


如果接口不在单个存储库中,我也不会共享它。

另一种方法是使用所有公共资产创建第三个项目。您可以从两个项目中引用它的*.d.ts。

另一种方法是使用您所有的公共资产创建第三个项目。您可以从这两个项目中引用它的*.d.ts。

建立一个新的通用typescript库存储库,存放所有系统范围的界面和功能。版本,并将此公共库发布到npm以便于访问

然后,客户端和服务器项目都应该npm安装mycommonlibrary

在本地开发过程中,您应该使用npmlink同时开发和调试公共库、客户机和服务器


固执己见的建议:遵循上述模式,我发现以下策略很有用:在公共库中编写应用程序的所有业务逻辑,以及模拟和测试代码-这非常灵活:例如,您可以采用通常的服务器端业务逻辑,但在客户端上运行它,将数据库的模型连接起来,这样您就可以像那样执行大部分系统同构,建立一个新的通用typescript库存储库非常简单,它是所有系统范围接口和功能的所在地。版本,并将此公共库发布到npm以便于访问

然后,客户端和服务器项目都应该npm安装mycommonlibrary

在本地开发过程中,您应该使用npmlink同时开发和调试公共库、客户机和服务器


固执己见的建议:遵循上述模式,我发现以下策略很有用:在公共库中编写应用程序的所有业务逻辑,以及模拟和测试代码-这非常灵活:例如,您可以采用通常的服务器端业务逻辑,但在客户端上运行它,连接数据库的模拟模型,这样你就可以像那样对你的大部分系统进行同构操作,非常整洁,我刚刚读了一篇关于这个案例的文章,我认为这会帮助解决你的问题

在那篇文章中,他们将结合Angular和NestJS,学习如何利用Nx monorepo中的代码共享。。。。

我刚刚读了一篇关于这个案子的文章,我想这会帮你解决问题

在那篇文章中,他们将结合Angular和NestJS,学习如何利用Nx monorepo中的代码共享。。。。

使用npm install为声明和类型创建另一个存储库,并在两个项目中使用此repo。您可以创建monorepo,并将所有共享接口存储在一个包中,或者,您可以为接口创建单独的repo并将其导出为NPM包创建另一个声明和类型存储库,并使用NPM安装在两个项目中使用此repo。您可以创建monorepo,并将所有共享接口存储在一个包中,或者,您可以为接口创建一个单独的回购协议,并将其导出为NPM包。下面是演示您建议的视频,谢谢!我看了这段视频,说明了你的建议,谢谢!