界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
效率与协作 · SKILL.md

react-typescript

react-typescript

【效率与协作】Type React components and hooks with TypeScript patterns. Use when typing React props, hooks, event handlers, or component generics in TypeScript.

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

name: react-typescript description: Type React components and hooks with TypeScript patterns. Use when typing React props, hooks, event handlers, or component generics in TypeScript. metadata: triggers: files: - '**/*.tsx' keywords: - ReactNode - FC - PropsWithChildren - ComponentProps - react typescript - tsx types - props interface - generic component - useState type - useRef type - typed hooks

React TypeScript

Priority: P1 (HIGH)

Implementation Guidelines

  • Components: Prefer interface/type (Props) over React.FC (which implicit children). Use JSX.Element or ReactNode as return type.
  • Children: For components that accept children, use PropsWithChildren<T> or explicitly type them as React.ReactNode.
  • Events: Always type event handlers using specific React events, such as React.ChangeEvent<HTMLInputElement> or React.FormEvent<HTMLFormElement>.
  • Hooks: For useRef, avoid any; use useRef<HTMLDivElement>(null). For useState, use generics for complex types: useState<User | null>(null).
  • Native Elements: Use ComponentPropsWithoutRef<'button'> or ComponentPropsWithRef to extend native attributes safely.
  • Generics: Implement generic components for reusable UI like lists using <T,>(props: ListProps<T>).
  • Discriminated Unions: Use Discriminated Unions for mutually exclusive props (e.g., success vs error states).
  • Utility Types: Leverage Omit, Pick, and Partial to transform prop interfaces and avoid redundancy.

Anti-Patterns

  • No any: Use unknown.
  • No React.FC: Implicit children deprecated/bad practice.
  • No Function: Use (args: T) => void.

References

See references/example.md for typed props, generic components, and hook ref patterns.

Canonical response anchors

When this skill applies, preserve the following domain terminology or equivalent concrete examples in the answer when relevant:

  • generic
我的收藏