Prompts-MCP 686 skills · ai / design / design-pattern / framework / fundamentals / habit / lang / tech-selection /mcp/sse
lang lang/typescript/types/index.md medium

lang-typescript-types-index

TypeScript 进阶类型能力索引(泛型 / 工具类型 / 类型守卫 / 判别联合 / 枚举 / 断言 / 声明文件与 paths 别名)。Use when 设计可复用泛型类型 / 收窄联合类型 / 用判别联合建模状态 / 为配置定义类型别名

子项索引

子项 一句话
generics skill TS 泛型做"类型随入参变化"的复用(函数 / 组件 / hook / 工具类型),禁用 any 顶替
utility-types skill TS 内置工具类型派生新类型,禁手抄字段重复 interface
type-guard skill 用类型守卫在分支前收窄联合类型:typeof / instanceof / in / 字面量比较 / 自定义谓词 x is T
discriminated-union skill 判别联合用共同字面量字段(status/type)区分成员,switch 该字段自动收窄分支并配 never 穷尽检查
enum-vs-const skill 定义一组常量时优先 as const 对象 + 联合类型,少用 enum
as-const-assertion skill 用 as const 把字面量收成只读窄类型,避免数组被拓宽成 string[]、对象字段退化为 string
declaration-and-paths skill 为无类型 JS 库补 .d.ts 声明文件并配 tsconfig paths 别名替代深相对路径

TypeScript · 进阶类型

本层包含

子项 一句话
generics 泛型约束 extends / 默认参数 / 条件类型 infer
utility-types Pick / Omit / Record / ReturnType / Partial
type-guard 类型守卫 is / in / typeof,收窄 unknown
discriminated-union 判别联合 tag 字段 + switch 穷尽 never
enum-vs-const enum 坑 vs const 对象 + as const
as-const-assertion as const 字面量收窄,防数组拓宽成 string[]
declaration-and-paths .d.ts 声明文件 / tsconfig paths 别名

何时下钻

  • 写可复用泛型函数/类型,约束类型参数 → generics.md
  • 从已有类型派生新类型(挑字段/改可选/取返回值)→ utility-types.md
  • 运行时收窄 unknown / union,写 x is T 谓词 → type-guard.md
  • 用带 tag 的联合建模状态机、API 响应、Result → discriminated-union.md
  • 定义一组常量并要其类型,纠结 enum 还是对象 → enum-vs-const.md
  • 需要字面量类型而非 string(路由表/配置/元组)→ as-const-assertion.md
  • 给无类型 JS 库补声明、配置 @/ 路径别名 → declaration-and-paths.md

链接