Swift中是否存在泛型类型参数的Markdown文档注释方法?
Swift 泛型类型参数的文档注释规范
存在被Xcode、DocC官方工具链支持的标准化泛型参数注释写法,你尝试的- typeparam属于非官方自定义标记,不会被工具识别为参数说明条目,具体可用规则如下:
全版本兼容的通用写法
泛型类型、泛型函数的类型参数注释逻辑和普通值参数完全一致,直接沿用- parameter标记即可,从Swift 3开始就被所有版本的Xcode Quick Help支持:
- 单条独立标注的写法:
/// 一个展示行列数据的网格视图 /// - parameter R: 行的标识类型,必须遵循 `Identifiable` 协议 /// - parameter C: 列的标识类型 struct MyView<R: Identifiable, C> { }
- 分组嵌套的变体写法:
/// 一个展示行列数据的网格视图 /// - parameters: /// - R: 行的标识类型,必须遵循 `Identifiable` 协议 /// - C: 列的标识类型 struct MyView<R: Identifiable, C> { }
Xcode 13+ 版本的专属分组写法
DocC文档系统提供了专门的泛型参数分组标记- Generic Parameters:,渲染时会单独划出泛型参数的说明区块,不会和普通值参数的文档内容混杂,适合同时包含值参数和泛型参数的场景,写法示例:
/// 从远程接口拉取模型数组数据 /// - Parameters: /// - endpoint: 请求的接口路径 /// - decodeStrategy: JSON解析使用的编码策略 /// - Generic Parameters: /// - ResponseType: 接口返回值对应的解析模型类型,必须遵循 `Decodable` 协议 func fetch<ResponseType: Decodable>(endpoint: String, decodeStrategy: JSONDecoder.KeyDecodingStrategy) async throws -> [ResponseType] { }
注意事项
- 所有注释标记后跟随的参数名,必须和代码中声明的泛型参数名完全一致,工具链才能自动建立说明和参数的关联,支持文档交叉引用
- 自创的
- typeparam类标记不会被官方工具识别,对应内容只会被当成普通自由文本展示,无法关联到具体的泛型参数 - 如果需要兼容Xcode 12及更早版本的渲染效果,优先选择通用的
- parameter写法
内容的提问来源于stack exchange,提问作者Rob N
相关产品推荐
相关产品推荐

