利用json-to-ts工具进行转换,放置在typeScript.ts文件中

张开发
2026/4/7 1:59:48 15 分钟阅读

分享文章

利用json-to-ts工具进行转换,放置在typeScript.ts文件中
后端返回了 100 个字段现在拿到的那 100 个字段里里面还有那种深层嵌套的“对象套对象”利用json-to-ts工具进行转换然后前端定义后端的response这个返回对象要怎么定义是不是要把没有用的数据也放置在typeScript.ts文件中答案以下是答案可以参考一下不要让一个接口长达几百行。把嵌套的对象拆出来TypeScript// 定义底层小对象 interface Address { city: string; street: string; } // 定义中层对象 interface UserProfile { id: number; name: string; address: Address; // 引用上面的定义 } // 定义最终的 Response export interface FinalResponse { code: number; data: UserProfile; }第二步批量删除“干扰项”在types.ts中直接删掉工具生成的那些诸如create_time,update_user,is_deleted,ext_field_1等后端数据库字段。只要你的代码里不调用data.create_time删掉它对程序运行没有任何影响。第三步标记可选字段?后端有些字段可能有时返回、有时不返回。对于这些不确定的深层数据记得加上?TypeScriptinterface NestedInfo { coupon_detail?: any; // 如果不显示直接用 any 并设为可选 }要把这种复杂的 JSON 数据解析到前端页面并转化为 TypeScript最优雅的做法是定义接口 (Interface)。TypeScript 的核心优势就是类型约束。通过定义接口你可以在编写代码时获得精准的自动补全并防止因为拼错字段名比如把total写成tolal导致的 Bug。第一步定义 TypeScript 接口 (Interface)根据你提供的 JSON 结构我们需要定义一套嵌套的接口。你可以把这段代码放在一个名为types.ts的文件中TypeScript// 1. 定义单条搜索结果的结构 interface ResultVo { id: string; title: string; description: string; url: string; author: string; pic_list: string[]; comment_count: number; view_count: number; // 根据 JSON 结构这里还可以继续添加更多字段 } // 2. 定义整体返回的数据结构 interface CsdnSearchResponse { code: number; message: string; total: number; result_vos: ResultVo[]; split_words: string[]; tag_lists: string[]; }第二步在前端请求中应用类型假设你在使用axios或原生的fetch来获取数据你可以直接将接口挂载到请求函数上。使用 Axios (推荐)TypeScriptimport axios from axios; async function getSearchData() { // 泛型约束告诉 axios 返回的数据符合 CsdnSearchResponse 结构 const response await axios.getCsdnSearchResponse(/api/search); // 现在当你输入 response.data. 时编辑器会自动提示 result_vos console.log(response.data.total); return response.data.result_vos; }使用 Fetch APITypeScriptasync function fetchSearchData(): PromiseCsdnSearchResponse { const res await fetch(/api/search); const data: CsdnSearchResponse await res.json(); return data; }如果你的 JSON 数据非常庞大比如有几百个字段手动写接口简直是折磨。我推荐你一个小妙招复制你的完整 JSON 内容。在 VS Code 中搜索并安装插件JSON to TS。按快捷键CtrlShiftAltV它会自动根据你剪贴板的内容生成完美的 TypeScript 接口定义。JSON 里的某些字段可能是null或者可选的。建议在定义接口时对于不确定的字段加上?例如pic_list?: string[];这样在数据缺失时程序也不会报错。

更多文章