Agent Skills
› sediman-agent/OpenSkynet
› typescript-best-practices
typescript-best-practices
GitHub提供TypeScript最佳实践,涵盖类型安全、联合类型、守卫函数及代码规范。适用于读取或编辑.ts/.tsx文件时,确保类型严谨与代码可维护性。
Trigger Scenarios
读取 .ts 文件
读取 .tsx 文件
编辑 .ts 文件
编辑 .tsx 文件
Install
npx skills add sediman-agent/OpenSkynet --skill typescript-best-practices -g -y
SKILL.md
Frontmatter
{
"name": "typescript-best-practices",
"description": "TypeScript best practices. Use when reading or editing any .ts or .tsx file."
}
TypeScript best practices
Apply the type-system-discipline principle skill first; this skill grounds it in TypeScript syntax.
| Rule | Summary |
|---|---|
| Discriminated unions | Model variants with a kind literal discriminant so impossible states can't be represented. No optional-field bags. |
| Branded types | Brand primitives with & { readonly __brand: "X" } so they can't be mixed up. Validate once at creation. |
unknown over any |
External data is unknown. any disables type checking everywhere it touches. |
No as casts |
Every as is a runtime crash waiting. Cast only after validation. |
| Narrowing hierarchy | Discriminant switch > in operator > typeof/instanceof > user-defined type guard > as. |
| Type guards | Must verify the claim. A lying guard is worse than as because the bug hides behind a name that says it's safe. Name them isX or hasX. |
| Exhaustiveness | Inline const _exhaustive: never = x; in default arms so the compiler errors when a new variant is added. |
satisfies over as |
Validates the value without widening literal types. |
| Boundary validation | Validate where data crosses in; trust types inside. See the boundary-discipline principle skill. |
| Schema-derived types | Reach for Pick/Omit/Parameters/ReturnType/Awaited/typeof before declaring a new interface. |
| Object args | Pass objects, not positional, so argument order is self-documenting. Skip on hot paths (per-frame render, tokenizers, parsers). |
Examples: references/patterns.md.
Version History
- c9d8953 Current 2026-07-05 19:53


