讨论

使用AI将JavaScript逆向工程为TypeScript

来自 Wikiprompt,自由的提示词百科全书

宝玉
贡献者宝玉X来源

2024年10月7日

使用AI将JavaScript逆向工程为TypeScript 将混淆的JavaScript代码转换为带有注释的类型良好的TypeScript,重点在于提示构建和请求处理。

提示词内容收藏

🌐
/** * 根据用户操作拼接 Prompt 并发送请求的 TypeScript 代码 * 注意:以下代码中引用的外部方法(如 fetch、getUserInput 等)仅作注释说明,不在此处实现 */ // 定义用户操作的类型 type UserAction = 'create' | 'edit' | 'delete' | 'query'; // 定义请求参数的类型 interface RequestParams { action: UserAction; targetId?: string; // 目标 ID,可选 content?: string; // 内容,可选 metadata?: Record<string, unknown>; // 元数据,使用 unknown 而非 any } // 定义 API 响应的类型 interface ApiResponse { success: boolean; data?: unknown; // 返回数据,使用 unknown 而非 any error?: string; } // 定义 Prompt 拼接函数的类型 type PromptBuilder = (params: RequestParams) => string; /** * 拼接 Prompt 的函数 * @param params 请求参数 * @returns 拼接后的 Prompt 字符串 */ const buildPrompt: PromptBuilder = (params) => { // 根据操作类型拼接不同的 Prompt const actionPrompt: Record<UserAction, string> = { create: '创建新条目', edit: '编辑现有条目', delete: '删除条目', query: '查询条目' }; // 基础 Prompt 结构 let prompt = `操作类型:${actionPrompt[params.action]}`; // 添加可选参数 if (params.targetId) { prompt += `,目标 ID:${params.targetId}`; } if (params.content) { prompt += `,内容:${params.content}`; } if (params.metadata) { // 将元数据转换为 JSON 字符串 prompt += `,元数据:${JSON.stringify(params.metadata)}`; } return prompt; }; /** * 发送请求并处理返回结果的函数 * @param prompt 拼接好的 Prompt * @returns Promise<ApiResponse> 处理后的响应 */ async function sendRequest(prompt: string): Promise<ApiResponse> { // 外部方法:fetch 用于发送 HTTP 请求(此处不实现) // 假设有一个 API 端点接收 prompt 并返回结果 const response = await fetch('/api/process-prompt', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ prompt }) }); // 检查响应状态 if (!response.ok) { return { success: false, error: `HTTP 错误:${response.status}` }; } // 解析响应数据 const rawData: unknown = await response.json(); // 类型守卫:检查数据是否符合 ApiResponse 结构 if (typeof rawData === 'object' && rawData !== null) { const data = rawData as ApiResponse; return data; } // 如果数据格式不正确,返回错误 return { success: false, error: '响应数据格式不正确' }; } /** * 主处理函数:根据用户操作拼接 Prompt 并发送请求 * @param params 请求参数 * @returns Promise<ApiResponse> 处理结果 */ export async function processUserAction(params: RequestParams): Promise<ApiResponse> { // 1. 拼接 Prompt const prompt = buildPrompt(params); // 2. 发送请求并处理结果 const result = await sendRequest(prompt); // 3. 返回结果 return result; } // 使用示例(注释说明) /* const exampleParams: RequestParams = { action: 'create', content: '示例内容', metadata: { priority: 'high' } }; processUserAction(exampleParams) .then(result => console.log(result)) .catch(error => console.error(error)); */

登录以查看完整提示词

继续使用:

登录即表示你同意我们的 使用条款 和 隐私政策

用法

此提示词专为 coding 设计。复制上方内容并粘贴到你常用的 AI 工具中。

为获得最佳效果,可将占位符(方括号或大写字母标示)替换为你的具体需求。

参考资料

分类:coding| twitter| reverse-engineering| typescript

讨论