You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TypeScript中JSDoc与类型映射、修改的交互规则查询

TypeScript中JSDoc与类型映射/修改的权威资料及机制疑问

场景验证:工具类型与映射类型对JSDoc的保留行为

基础场景:Pick/Omit保留原始JSDoc

const any: any = {};
type A = {
    /** FOO */ foo: 1,
    /** BAR */ bar: 2
}
let A: A = any;
A.foo
// ^# 提示:FOO
let A2: Pick<A, 'foo'> = any;
A2.foo
// ^# 提示:FOO
let A3: Omit<A, 'bar'> = any;
A3.foo
// ^# 提示:FOO

进阶场景:映射类型保留原始JSDoc

type B = { [K in keyof A]: false }
let B: B = any;
B.foo
// ^# 提示:FOO

核心需求

需要以下内容以深入理解相关技术:

  • 来自权威来源的、关于TypeScript中JSDoc与类型映射/修改工作机制的完整资料列表
  • TypeScript中JSDoc的整体工作机制说明
  • 可用于JSDoc操作的完整技术列表

具体疑问

  • 是否可以将类型{ /** foo */ a: 1 }转换为{ /** foo */ b: 1 }(即保留原JSDoc的同时修改属性名)?
  • 是否可以实现一个类似function addJsdoc<T, ?>(fnWithoutJsdoc: T): <?<T>>的包装器,为没有JSDoc的函数类型添加JSDoc?

相关参考背景

TypeScript官方GitHub仓库中有编号为#41165的特性请求,内容为「文档化工具类型」,该请求关注工具类型对JSDoc的处理能力扩展。

内容的提问来源于stack exchange,提问作者Dimava

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 00:10:00