Skip to content

Commit 83fdfb9

Browse files
committed
typescript-code-style-convention
1 parent 7be6508 commit 83fdfb9

File tree

1 file changed

+132
-0
lines changed
  • content/blog/typescript-code-style-convention

1 file changed

+132
-0
lines changed
Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
1+
---
2+
title: TypeScript 代码风格与约定
3+
date: '2023-11-23T11:05:15.844Z'
4+
description: 本文摘抄《深入理解 TypeScript》中的代码风格指南与代码约定
5+
---
6+
7+
## 变量和函数
8+
9+
使用 camelCase 形式为变量和函数命名。原因:JavaScript 的惯例。
10+
11+
- 好的命名方式
12+
13+
```ts
14+
var fooVar;
15+
function barFunc() {}
16+
```
17+
18+
- 不好的命名方式
19+
20+
```ts
21+
var FooVar;
22+
function BarFunc() {}
23+
```
24+
25+
## 类 (Class)
26+
27+
使用 PascalCase 形式为类命名。原因:在标准的 JavaScript 中通常是这么做的。
28+
29+
- 好的命名方式
30+
31+
```ts
32+
class Foo {}
33+
```
34+
35+
- 不好的命名方式
36+
37+
```ts
38+
class foo {}
39+
```
40+
41+
类的属性和方法使用 camelCase 方式进行命名。原因:自然地遵循变量和函数命名的约定。
42+
43+
- 好的命名方式
44+
45+
```ts
46+
class Foo {
47+
bar: number;
48+
baz() {}
49+
}
50+
```
51+
52+
- 不好的命名方式
53+
54+
```ts
55+
class Foo {
56+
Bar: number;
57+
Baz() {}
58+
}
59+
```
60+
61+
## 接口 (interface)
62+
63+
使用 PascalCase 形式为接口命名。原因:和类相同。
64+
65+
接口成员使用 camelCase 方式进行命名。原因:和类的成员使用相同方式进行命名。
66+
67+
- 好的命名方式
68+
69+
```ts
70+
interface Foor {}
71+
```
72+
73+
- 不好的命名方式
74+
75+
```ts
76+
interface IFoor {}
77+
```
78+
79+
## 类型别名 (type)
80+
81+
类型别名使用 PascalCase 形式进行命名。原因:和类相同。
82+
类型别名成员使用 camelCase 形式进行命名。原因:和类的成员使用相同方式进行命名。
83+
84+
## 命名空间 (namespace)
85+
86+
命名空间使用 PascalCase 形式进行命名。原因:遵循 TypeScript 团队惯例,命名空间实际上只是一个具有静态成员的类,类的命名形式是 PascalCase,因此,命名空间的命名形式也是 PascalCase。
87+
88+
- 好的命名方式
89+
90+
```ts
91+
namespace Foo {}
92+
```
93+
94+
- 不好的命名方式
95+
96+
```ts
97+
namespace foo {}
98+
```
99+
100+
## 枚举类型 (enum)
101+
102+
枚举类型使用 PascalCase 形式进行命名。原因:和类相同。
103+
104+
- 好的命名方式
105+
106+
```ts
107+
enum Color {}
108+
```
109+
110+
- 不好的命名方式
111+
112+
```ts
113+
enum color {}
114+
```
115+
116+
枚举类型成员使用 PascalCase 形式进行命名。原因:遵循 TypeScript 团队惯例,例如 SyntaxKind.StringLiteral,这也有助于将其他语言的代码生成转换为 TypeScript 代码。
117+
118+
- 好的命名方式
119+
120+
```ts
121+
enum Color {
122+
Red
123+
}
124+
```
125+
126+
- 不好的命名方式
127+
128+
```ts
129+
enum Color {
130+
red
131+
}
132+
```

0 commit comments

Comments
 (0)