如何保存对象类型并在前后端项目间复用?
后端类型共享到前端的实现方案
1. 抽离类型到独立文件
首先把App类型从业务代码中抽出来,放到专门的类型文件里,避免混入运行时代码:
- 方案一(直接复用现有变量类型):
在后端新建src/types/app.ts文件:import { SomeFunctionThatGeneratesSomething } from '../path-to-your-function'; // 仅用于推导类型,TypeScript编译后会移除这段运行时无关代码 const app = SomeFunctionThatGeneratesSomething(); export type App = typeof app; - 方案二(更高效的类型推导):
用ReturnType直接获取函数返回类型,无需定义临时变量:import { SomeFunctionThatGeneratesSomething } from '../path-to-your-function'; export type App = ReturnType<typeof SomeFunctionThatGeneratesSomething>;
2. 让前端能访问到这个类型包
本地开发场景(快速调试)
- 在后端项目根目录执行:
npm link # 或 yarn link - 确保后端
package.json的name字段是savedBackendApp,然后到前端项目根目录执行:npm link savedBackendApp # 或 yarn link savedBackendApp
正式发布场景
- 配置后端
package.json,指定类型文件路径:{ "name": "savedBackendApp", "types": "./dist/types/app.d.ts", "files": [ "dist/types" // 只发布类型相关文件,减少包体积 ] } - 编译后端TypeScript代码,确保类型文件输出到
dist/types目录,然后发布到npm(私有或公共仓库) - 前端项目安装依赖:
npm install savedBackendApp # 或 yarn add savedBackendApp
3. 前端引入使用
在前端代码中直接导入类型:
import { App } from "savedBackendApp"; // 示例:使用类型约束变量 const currentApp: App = ...;
内容的提问来源于stack exchange,提问作者nerkn
相关产品推荐
相关产品推荐

