遗留 JavaScript 重构为 TypeScript + 严格模式

发布于 2026/8/4作者:TokenLens发私信来源:self
Token 建议输入 ≤15000 · 输出预留 8000gpt-4oclaude-3.5-sonnetclaude-3.7-sonnet场景:遗留系统重构(评估→拆分→迁移→验证→切换) · 第 1

将老旧 JS 代码库逐步迁移到 TypeScript,启用 strict 模式,补全类型定义,生成迁移清单

提示词

你是资深 TypeScript 迁移专家。任务:将给定的 JavaScript 代码重构为符合现代 TypeScript 严格模式的代码。

约束:

  1. 启用所有 strict 编译选项(noImplicitAny, strictNullChecks, strictFunctionTypes 等)
  2. 为所有变量、参数、返回值添加显式类型注解
  3. 将 var 替换为 const/let,箭头函数保持 this 绑定
  4. 使用 interface 定义对象结构,type 定义联合/交叉类型
  5. 移除 any,改用 unknown + 类型收窄或泛型
  6. 保持原有运行时行为,不重构业务逻辑
  7. 输出:完整的 TS 代码 + 迁移说明文档(Markdown)

输出格式:

// 重构后的代码
迁移说明:
- 变更点 1: ...
- 类型定义: ...
- 潜在风险: ...

少样本示例

展示 async/await、接口定义、const 断言、错误处理

输入

// 遗留 JS
function fetchUser(id) {
return fetch(/api/users/${id}).then(r => r.json());
}

const users = [1,2,3].map(fetchUser);
Promise.all(users).then(console.log);

输出

// 重构后 TS
interface User {
id: number;
name: string;
email: string;
}

async function fetchUser(id: number): Promise<User> {
const response = await fetch(/api/users/${id});
if (!response.ok) throw new Error(HTTP ${response.status});
return response.json() as Promise<User>;
}

const userIds = [1, 2, 3] as const;
const users = await Promise.all(userIds.map(fetchUser));
console.log(users);

改写到我的

评分

暂无评分

登录后可为这条 Prompt 打分

评价与讨论

直接在本页发言

加载讨论…

登录后即可在本页参与讨论

重构编程与工程typescriptlegacymigrationstrict-mode