React TypeScript hooks
- 注释
(1) 文件顶部的注释,包括描述、作者、日期
/**
- @description xxxxxx
- @author chengfeng
- @since 19/05/21
/
复制代码(2) 模块的注释
/* - 拷贝数据
- @param {*} data 要拷贝的源数据
- @param {boolean} [isDeep=false] 是否深拷贝,默认浅拷贝
- @return {*} 返回拷贝后的数据
*/
复制代码(3) 业务代码注释
/业务代码注释/
复制代码(4) 变量注释
interface IState {
// 名字
name: string;
// 电话
phone: number;
// 地址
address: string;
}
复制代码2. 引用组件顺序
先引用外部组件库,再引用当前组件块级组件, 然后是 common 里的公共函数库最后是 css 样式
import * as React from ‘react’;
import { Dropdown, Menu, Icon } from ‘antd’;
import Header from ‘./Header’;
import toast from ‘common/toast’;
import ‘./index.less’;
复制代码3. 引号
使用单引号,或者 es6 的反引号
- 缩进
使用两个空格
const handleCheck = () => {
onCancel && onCancel();
onClose && onClose();
};
复制代码5. 分号
除了代码块的以外的每个表达式后必须加分号。
- 括号
下列关键字后必须有大括号(即使代码块的内容只有一行):if, else, for, while, do, switch, try, catch, finally, with。
// not good
if (condition) doSomething();
// good
if (condition) {
doSomething();
}
复制代码7. 空格
二元和三元运算符两侧必须有一个空格,一元运算符与操作对象之间不允许有空格。
// bad
++ x;
y ++;
z = x?1:2;
// good
++x;
y++;
z = x ? 1 : 2;
复制代码
用作代码块起始的左花括号 { 前必须有一个空格。
// bad
if (condition){
}
while (condition){
}
function funcName(){
}
// good
if (condition) {
}
while (condition) {
}
function funcName() {
}
复制代码
if / else / for / while / function / switch / do / try / catch / finally 关键字后,必须有一个空格。
// bad
if(condition) {
}
while(condition) {
}
(function() {
})();
// good
if (condition) {
}
while (condition) {
}
(function () {
})();
复制代码
在对象创建时,属性中的 : 之后必须有空格,: 之前不允许有空格。
// bad
var obj = {
a : 1,
b:2,
c :3
};
// good
var obj = {
a: 1,
b: 2,
c: 3
};
复制代码8. 换行
每个独立语句结束后必须换行。
在函数声明、函数表达式、函数调用、对象创建、数组创建、for 语句等场景中,不允许在 , 或 ; 前换行
// bad
var obj = {
a: 1
, b: 2
, c: 3,
};
function test()
{
…
}
for (const key in object)
{
if (object.hasOwnProperty(key)) {
const element = object[key];
}
}
// good
var obj = {
a: 1,
b: 2,
c: 3,
};
function test() {
…
}
for (const key in object) {
if (object.hasOwnProperty(key)) {
const element = object[key];
}
}
复制代码
下列关键字后:else, catch, finally 不需要换行
// bad
if (condition) {
…
}
else {
…
}
try {
…
}
catch (e) {
…
}
finally {
…
}
// good
if (condition) {
…
} else {
…
}
try {
…
} catch (e) {
…
} finally {
…
}
复制代码9. 数组、对象
对象属性名不需要加引号;
对象以缩进的形式书写,不要写在一行;
数组最后不要有逗号。
对象最后要有逗号。
// bad
const a = {
‘b’: 1
};
const a = {b: 1};
const a = {
b: 1,
c: 2
};
const arr = [1, 2, 3, 4,];
// good
const a = {
b: 1,
c: 2,
};
const arr = [1, 2, 3, 4];
复制代码10. 命名
类名: 大驼峰式风格,字母和数字,例如:AbcTest。禁止汉字、特殊符号,禁止非大驼峰式风格。
函数名: 小驼峰式风格,字母和数字,例如:abcTest。禁止汉字、特殊符号,禁止非小驼峰式风格,例如snake_case等。
变量名: 同函数名。
常量: 全大写风格,大写字母、数字和下划线,单词之间以下划线分隔,例如:ABC_TEST。禁止汉字