悦省yueser.com

← 全部指南

PascalCase 怎么转?大驼峰命名与类名规范

大驼峰(PascalCase,也叫 UpperCamelCase)每个词首字母都大写,包括第一个词。类、组件、类型、枚举通常用它,和变量用的小驼峰形成对照。

打开工具:大驼峰命名

什么时候用大驼峰

新建一批 React 组件时,组件名、文件名、props 类型名要一起定:user profile card 变成 UserProfileCard,还要有 UserProfileCardProps。手写容易在卡片、列表、详情之间出现大小写不一致,运行时不一定报错,读代码的人却要反复确认哪个才对。

Java 和 C# 的类名、TypeScript 的 interface 与 type、数据库实体、自动生成的模型类,也都用大驼峰。把表名或字段说明批量转一遍,再统一补上后缀,比逐个命名更省事,也更容易保持整套代码一致。

转换规则与三个容易忽略的地方

规则和小驼峰相同:先整体转小写,再把非字母数字字符及其后的字符转成大写,最后把首字母大写。差别只在最后这一步,所以 user profile、user_profile、user-profile 都会得到 UserProfile,空格和符号不会留下痕迹。

第一,已有的 PascalCase 会被压平:输入 UserProfile,转小写后没有分隔符,结果是 Userprofile。第二,缩写会被小写化:URL、ID、API 变成 Url、Id、Api,需要按团队规范手动改回。第三,首字符是数字时不会大写,3d model 得到 3dModel 而不是 3DModel。

各语言的差异与它的边界

C# 的公共类、方法和属性都用 PascalCase;Java 的类名用它,方法名用小驼峰;Go 用首字母大写表示可导出,但不要求整词连写;Python 的类名同样用它,函数用 snake_case。同一个名字跨语言复用时写法必然要改,这不是工具能决定的。

缩写怎么处理没有全球统一答案:.NET 的命名指南建议两个字母的缩写全部大写(IO),超过两个字母只大写首字母(Http、Xml),Google 的 Java 风格也接近这个思路。工具的边界是只做字符重组:不查重名、不判断词义、不做词形还原,也不会告诉你 User 和 Users 哪个更合适。

常见问题

PascalCase 和 camelCase 有什么区别?

只差第一个词的首字母:camelCase 写成 userName,PascalCase 写成 UserName,其余部分完全一样。JavaScript 里变量和方法用前者,类与组件用后者;C# 则连方法和属性都用 PascalCase。

为什么 3d model 转出来是 3dModel 不是 3DModel?

首字母大写只对字母生效,数字 3 没有大小写,所以只有 m 被提升。要得到 3DModel,需要在转换后手动把 d 改成大写;如果名字以数字开头,还要确认目标语言是否允许这种标识符。

React 组件名必须大写开头吗?

是。JSX 里小写开头的标签会被当成 HTML 原生元素处理,<myCard /> 不会渲染成你的组件,而是变成一个未知标签。所以组件名和引入时的变量名都要用大写开头,这也正是 PascalCase 在这个场景流行的原因。

相关工具:大驼峰命名