You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何保存对象类型并在前后端项目间复用?

后端类型共享到前端的实现方案

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 11:35:59