Typescript 在前端和后端之间共享类型定义(单独的项目)

Typescript 在前端和后端之间共享类型定义(单独的项目),typescript,Typescript,我有两个独立的项目:一个HTTP API和一个前端,它们都使用typescript 在HTTP API中,我声明了定义预期请求体的接口,例如: export interface ITestRequest { body: { value: string; } } request.post('/test', function(req :ITestRequest, res) { //req is typed, awesome ! console.log(req

我有两个独立的项目:一个HTTP API和一个前端,它们都使用typescript

在HTTP API中,我声明了定义预期请求体的接口,例如:

export interface ITestRequest {
   body: {
       value: string;
   }
}
request.post('/test', function(req :ITestRequest, res) {
    //req is typed, awesome !
    console.log(req.body.value)
}
现在,在我的前端项目中,我想请求这个API。现在,我将类型从后端源复制/粘贴到前端源

我想创建一个包含HTTP API所有公共类型的NPM包,这样我就可以在前端项目中导入它们:最简单的方法是什么?

我尝试过但没有成功的:

  • 使用
    声明
    emitDeclarationOnly
    声明目录
    选项并将其发布为NPM模块:

这正确地发出了项目的所有d.t,但是由于项目是一个服务器项目,entrypoint只是我的http框架样板,所以它不公开我需要的类型

您是否考虑过仅为类型创建另一个项目?根据项目的复杂性,您可能会发现自己将来需要添加例如类型保护。