如何将JS脚本批量转换TS数据类型?

摘要:在TS开发中,经常会遇到后台数据字段比较多的情况,这时候需要一个个复制字段然后给他手动配置数据类型来完成我们的TS类型定义,相当麻烦。有什么快速的方法呢,我就目前遇到的两种情况分别写了JS脚本来处理后台数据,直接生成我们需要的数据格式。 脚
在TS开发中,经常会遇到后台数据字段比较多的情况,这时候需要一个个复制字段然后给他手动配置数据类型来完成我们的TS类型定义,相当麻烦。有什么快速的方法呢,我就目前遇到的两种情况分别写了JS脚本来处理后台数据,直接生成我们需要的数据格式。 脚本编写 1. 处理数据字典中的数据 一般数据字典表里的数据可能在excel文件里,也可能是在在线网页中,但它一般都是一个表格的形式,比如以下这种: 我们只需要复制前两列的内容,字段和字段类型。 明白我们的需求后,开始编写js脚本: // 定义一个方法 const dealDictionaryKey = (string) => { // 复制出来的数据是多行的形式,所以我们以'\n'去分开每一行数据 const strArr = string.split('\n'); let newString = ''; // 遍历每行数据 for (let item of strArr) { // 空白行跳过 if (item.trim() === '') continue; // 替换常用的后台数据类型为js类型,如果有遗漏请自行添加 /t是单元格字段和单元格类型之间的隔离符号 item = item.replace(/\t/, ': ').replace('INTEGER', 'number').replace(/TIMESTAMP|DATE/, 'Date') .replace(/TEXT|VARCHAR\(\d*\)|CHAR\(\d*\)/, 'string'); // 递归是因为可能一个字段里有多个下划线 item = toUppercase(item); newString += item + ';\n'; } console.log(newString) } // 递归字符串,替换字符串中每一个 下划线+小写字母 为 大写字母 的形式 const toUppercase = (str) => { const idx = str.indexOf('_'); // 替换到没有下划线为止 if(idx === -1) return str; // 下划线+小写字母 const oldStr = str.substr(idx, 2); // 生成的大写字母 const initial = str.substr(idx + 1, 1).toUpperCase(); // 替换 str = str.replace(oldStr, initial); str = toUppercase(str); return str; } // 赋值测试 const str = ` department_id INTEGER department_name VARCHAR(125) department_type CHAR(1) create_user VARCHAR(25) create_time TIMESTAMP update_user VARCHAR(20) update_time TIMESTAMP ` // 执行 dealDictionaryKey(str); 执行结果 departmentId: number; departmentName: string; departmentType: string; createUser: string; createTime: Date; updateUser: string; updateTime: Date; 2. 处理后台代码中复制的数据 我们直接查看后台代码,然后复制出来进行处理。后台代码一般形式如下: 我们直接复制花括号中的内容,进行处理。
阅读全文