用途:这是一项 TypeScript 编码实践技能,用于在函数可能失败或存在特殊状态时,避免使用 -1、0、"" 等域内值作为哨兵值,改用 null、undefined 或标签联合类型,让 TypeScript 能区分并强制处理特殊情况。
主要能力:介绍 indexOf 返回 -1 的陷阱(-1 是合法数组索引,会导致 slice 结果错误),演示用 safeIndexOf 返回 number | null 进行包装;给出商品价格未知用 -1 导致求和出错的例子,改为 number | null;说明 null/undefined 可被 TypeScript 跟踪,标签联合(如 { status: 'success' | 'error' | 'pending' })适合表达更复杂状态;强调 strictNullChecks 的意义。
使用方式:在函数返回值中用 null 表示缺失,或在复杂场景定义标签联合类型;调用方通过判空或判别字段分支处理,否则类型检查会报错。资料列举应避免的哨兵值:-1、0、""、[]、{}、NaN。
适用场景:可能失败的函数、有“缺失/未知”状态的值、包装使用哨兵值的 API、设计自定义返回类型。
限制:属于编码风格与类型设计建议,不涉及具体工具、平台或收费信息;资料未提供安装命令、URL 使用步骤以外的操作细节。