如何为带特定属性的函数参数对象正确编写类型提示
TypeScript 函数参数类型正确标注方式
你写的(input: { thing: string })内联类型语法本身是符合TS规范的,如果写法不生效,先排查基础环境问题,再根据你的项目场景选对应写法:
- 纯TS项目(文件后缀为
.ts/.tsx)最简写法
直接写内联类型即可,注意不要在JS文件里用TS原生类型注解:
const someFunc = (input: { thing: string }) => { // 此处input.thing会被正确识别为string类型 console.log(input.thing) }
如果参数结构复杂、或者这个类型要在多处复用,优先提前定义类型别名或接口:
// 定义入参结构 type FuncInput = { thing: string // 可选属性加?标记即可,例: extra?: number } const someFunc = (input: FuncInput) => { // 业务逻辑 }
- 纯JS项目(文件后缀为
.js)JSDoc写法
JS环境不识别TS原生的冒号类型注解,要写JSDoc标记才能让编辑器识别类型提示:
/** * @param {{ thing: string }} input */ const someFunc = (input) => { // 此处编辑器会正确提示input.thing的类型 }
常见写法不生效的排查点:
- 文件后缀为
.js,却用了TS原生的冒号类型注解语法 - 项目未初始化TypeScript配置,缺少
tsconfig.json,TS语言服务未正常运行 - 编辑器TS服务卡顿,重启编辑器或者重启TS服务即可恢复
内容的提问来源于stack exchange,提问作者jlcv
相关产品推荐
相关产品推荐

