VSCode能否自动生成TypeScript回调方法的正确类型脚手架?
VSCode TypeScript 自动生成正确类型回调脚手架的实现方法
你遇到的问题不是操作错误,目前原生VSCode内置的TypeScript语言服务暂不支持直接通过传入函数名触发快速修复生成对应参数类型的回调声明,默认生成的函数参数会是any类型。
原生无插件实现方案(推荐)
通过先写匿名回调再提取函数的方式,即可生成完全符合类型要求的函数声明,步骤如下:
- 第一步:先完成方法调用,传入匿名箭头函数作为回调,无需手动标注参数类型,TypeScript会自动从目标方法的类型定义中推导参数类型
import * as http from 'http'; http.createServer((req, res) => { throw new Error('Function not implemented.'); })
- 第二步:选中整个箭头函数代码块,按下
Ctrl+.(macOS为Cmd+.)触发快速修复,选择「提取函数」> 「提取到全局作用域」 - 第三步:输入自定义函数名
onReq后回车,即可自动生成符合要求的函数声明,同时原调用位置会自动替换为对应的函数引用:
function onReq(req: http.IncomingMessage, res: http.ServerResponse) { throw new Error('Function not implemented.'); } http.createServer(onReq);
扩展插件方案
如果你需要直接通过写函数名触发生成的能力,可以安装第三方VSCode扩展实现,例如TypeScript Missing Function Fix类插件,即可支持直接从调用位置生成对应类型的函数声明。
补充说明
目前TypeScript官方开发团队已经收录了相关功能需求,后续版本的TypeScript语言服务可能会原生支持该能力,无需额外操作即可实现和C#开发体验一致的事件回调脚手架生成功能。
内容的提问来源于stack exchange,提问作者Damn Vegetables
相关产品推荐
相关产品推荐

