
Quick reference for Option type. Use when user needs to handle nullable values, optional data, or wants to avoid null checks.技能概述fp-option-ref 技能是一个Option类型的快速参考卡片,提供简洁的API参考和常用模式。Option表示可能不存在的值,Some(value)表示有值,None表示无值。该技能为需要处理可空值或可选数据的场景提供快速参考,包括消除null检查、安全属性访问、以及使用Option进行可选链式操作。适用于需要快速查阅Option操作符和模式的开发者。下载地址:agentic-awesome-skills/skills/fp-option-ref at main · sickn33/agentic-awesome-skills · GitHub核心概念Option 可能不存在的值。Some(value)或None。主要功能创建Option值: some、none、fromNullable、fromPredicate转换操作: map、flatMap、filter提取值: getOrElse、toNullable、toUndefined、match安全属性访问: 链式访问可能为null的嵌套属性数组操作: 安全获取数组的第一个元素等触发条件在以下情况下应该调用此技能:需要可空值或可选值的fp-ts快速参考时任务涉及消除null检查、安全属性访问或使用Option进行可选链式操作时想要简短的参考卡片而非完整的迁移指南时创建Optionimport * as O from fp-ts/OptionO.some(5) // Some(5)O.none // NoneO.fromNullable(x) // null/undefined → None, else Some(x)O.fromPredicate(x 0)(x) // false → None, true → Some(x)转换操作O.map(fn) // 转换内部值O.flatMap(fn) // 链接Option(fn返回Option)O.filter(predicate) // 如果predicate为false则返回None提取值O.getOrElse(() default) // 获取值或默认值O.toNullable(opt) // 返回T | nullO.toUndefined(opt) // 返回T | undefinedO.match(onNone, onSome) // 模式匹配常用模式安全属性访问链式访问可能为null的嵌套属性:import { pipe } from fp-ts/functionimport * as O from fp-ts/Optionpipe(O.fromNullable(user),O.map(u u.profile),O.flatMap(p O.fromNullable(p.avatar)),O.getOrElse(() /default-avatar.png))数组第一个元素安全获取数组的第一个元素:import * as A from fp-ts/Arraypipe(users,A.head, // OptionUserO.map(u u.name),O.getOrElse(() No users))Option vs NullableNullable的问题容易忘记检查,类型不明确,难以链式操作。Option的优势显式、可组合,强制处理缺失情况,支持链式操作。Option vs 可选链简单情况: 使用可选链对于简单的null检查,TypeScript的可选链(?.)和空值合并(??)更简洁。const name user?.profile?.name ?? Guest复杂情况: 使用Option当需要链式操作、组合多个可能为null的值时,Option更强大。pipe(O.fromNullable(user),O.flatMap(u O.fromNullable(u.profile)),O.map(p p.name),O.getOrElse(() Guest))最佳实践使用Option当需要链式操作时: 对于可选值的链式操作,Option比可选链更强大简单情况使用语言特性: 对于简单的null检查,使用?.和??在边界处转换: 将可能为null的API返回值包装为Option提供有意义的默认值: 使用getOrElse提供合理的默认值使用fromNullable: 将可能为null/undefined的值转换为Option限制说明重要限制:仅在任务明确匹配所述范围时使用此技能不要将输出替代环境特定的验证、测试或专家审查如果缺少必需的输入、权限、安全边界或成功标准,请停止并请求澄清