用于共享数据对象模型的Angular库

时间:2019-06-13 23:19:40

标签: angular module interface

我正在开发一个Angular前端应用程序,该应用程序从C#(.NET)后端服务器发送和接收数据。我正在致力于在Angular应用程序(打字稿)和后端(C#)之间共享数据对象模型-我正在寻找一种干净,自动化的方式来使两组数据对象模型保持同步。

作为一个例子,假设我有一个名为“ IData”的C#接口,其属性为“名称”。我想要一个名为“ IData”的Typescript接口,该接口也具有属性“ Name”。如果我将属性名称更新为其他名称(例如“ LongName”),则希望打字稿文件自动反映此更改。我可以使用单向数据链接(用户更新C#,打字稿会自动更新)。

我目前正在使用打字机(https://frhagn.github.io/Typewriter/)从C#源自动生成打字稿文件,并且做得很好。我要解决的问题是:从angular应用程序共享/访问自动生成的打字稿文件的最佳方法是什么?

我曾考虑过将自动生成的打字稿文件包含在Angular库项目的Angular模块中,进行构建,然后将其导入到我的Angular应用程序中。但是,我找不到让库模块自动包含库中所有文件的好方法(我希望避免在创建要共享的新数据对象时手动更新模块文件,因为这些更改有时会频繁发生) ,而我目前正在使用无法在Angular模块(An interface cannot be exported in an angular 2 module?)中导出的接口。

我已经研究过使用Typescript模块(https://www.typescriptlang.org/docs/handbook/modules.html-与Angular模块和Javascript模块不同)和Typescript引用(https://www.typescriptlang.org/docs/handbook/project-references.html),这些似乎对于共享接口更有希望,但是我仍然不确定如何在这种情况下使用它们。

我正在使用Visual Studio 2017,因此理想情况下,数据对象将驻留在一个Visual Studio项目中,然后我的角度应用程序将驻留在单独的Visual Studio项目中,尽管我知道这是不可能的。

感谢您对正确方法的任何指导!

1 个答案:

答案 0 :(得分:0)

在开发我们的基础架构几个月后,我们决定采用Nx Monorepo方法。我为每个使用Typewriter创建的自动生成的打字稿项目使用Nx打字稿库。角度模块对此没有任何意义,因为您无法从NgModule导出接口,而NgModule是我要导出的主要文件类型。