Prompt
Choose variable, function, and type names that clearly communicate their purpose, source, and context. Names should be self-documenting and avoid ambiguity or conflicts with existing identifiers.
Key principles:
- Use specific, descriptive names over generic ones (e.g.,
formItemNameinstead ofdefaultName,ButtonClassNamesTypeinstead of genericPartial<Record<...>>) - Avoid naming conflicts by using distinct aliases when necessary (e.g.,
clsfor classnames utility vsclassNamesfor semantic props) - Maintain consistency across similar components (e.g., use
iconPositionconsistently rather than mixingiconPosandiconPosition) - Prefer names that don’t require users to understand complex internal relationships
Example:
// ❌ Generic and potentially confusing
const defaultName = useId();
classNames?: Partial<Record<ButtonSemanticName, string>>;
// ✅ Semantic and descriptive
const randomId = useId();
const defaultName = formItemName || randomId;
classNames?: ButtonClassNamesType;
// ❌ Naming conflict
import classNames from 'classnames';
// ... later in code
<div classNames={props.classNames} />
// ✅ Clear distinction
import cls from 'classnames';
// ... later in code
<div className={cls(...)} classNames={props.classNames} />