@@ -33,12 +33,12 @@ TypeScript 除了实现了所有 ES6 中的类的功能以外,还添加了一
33
33
34
34
``` js
35
35
class Animal {
36
- constructor (name ) {
37
- this .name = name;
38
- }
39
- sayHi () {
40
- return ` My name is ${ this .name } ` ;
41
- }
36
+ constructor (name ) {
37
+ this .name = name;
38
+ }
39
+ sayHi () {
40
+ return ` My name is ${ this .name } ` ;
41
+ }
42
42
}
43
43
44
44
let a = new Animal (' Jack' );
@@ -51,13 +51,13 @@ console.log(a.sayHi()); // My name is Jack
51
51
52
52
``` js
53
53
class Cat extends Animal {
54
- constructor (name ) {
55
- super (name); // 调用父类的 constructor(name)
56
- console .log (this .name );
57
- }
58
- sayHi () {
59
- return ' Meow, ' + super .sayHi (); // 调用父类的 sayHi()
60
- }
54
+ constructor (name ) {
55
+ super (name); // 调用父类的 constructor(name)
56
+ console .log (this .name );
57
+ }
58
+ sayHi () {
59
+ return ' Meow, ' + super .sayHi (); // 调用父类的 sayHi()
60
+ }
61
61
}
62
62
63
63
let c = new Cat (' Tom' ); // Tom
@@ -70,15 +70,15 @@ console.log(c.sayHi()); // Meow, My name is Tom
70
70
71
71
``` js
72
72
class Animal {
73
- constructor (name ) {
74
- this .name = name;
75
- }
76
- get name () {
77
- return ' Jack' ;
78
- }
79
- set name (value ) {
80
- console .log (' setter: ' + value);
81
- }
73
+ constructor (name ) {
74
+ this .name = name;
75
+ }
76
+ get name () {
77
+ return ' Jack' ;
78
+ }
79
+ set name (value ) {
80
+ console .log (' setter: ' + value);
81
+ }
82
82
}
83
83
84
84
let a = new Animal (' Kitty' ); // setter: Kitty
@@ -92,9 +92,9 @@ console.log(a.name); // Jack
92
92
93
93
``` js
94
94
class Animal {
95
- static isAnimal (a ) {
96
- return a instanceof Animal;
97
- }
95
+ static isAnimal (a ) {
96
+ return a instanceof Animal;
97
+ }
98
98
}
99
99
100
100
let a = new Animal (' Jack' );
@@ -112,11 +112,11 @@ ES6 中实例的属性只能通过构造函数中的 `this.xxx` 来定义,ES7
112
112
113
113
``` js
114
114
class Animal {
115
- name = ' Jack' ;
115
+ name = ' Jack' ;
116
116
117
- constructor () {
118
- // ...
119
- }
117
+ constructor () {
118
+ // ...
119
+ }
120
120
}
121
121
122
122
let a = new Animal ();
@@ -129,11 +129,11 @@ ES7 提案中,可以使用 `static` 定义一个静态属性:
129
129
130
130
``` js
131
131
class Animal {
132
- static num = 42 ;
132
+ static num = 42 ;
133
133
134
- constructor () {
135
- // ...
136
- }
134
+ constructor () {
135
+ // ...
136
+ }
137
137
}
138
138
139
139
console .log (Animal .num ); // 42
@@ -153,10 +153,10 @@ TypeScript 可以使用三种访问修饰符(Access Modifiers),分别是 `
153
153
154
154
``` ts
155
155
class Animal {
156
- public name;
157
- public constructor (name ) {
158
- this .name = name ;
159
- }
156
+ public name;
157
+ public constructor (name ) {
158
+ this .name = name ;
159
+ }
160
160
}
161
161
162
162
let a = new Animal (' Jack' );
@@ -171,10 +171,10 @@ console.log(a.name); // Tom
171
171
172
172
``` ts
173
173
class Animal {
174
- private name;
175
- public constructor (name ) {
176
- this .name = name ;
177
- }
174
+ private name;
175
+ public constructor (name ) {
176
+ this .name = name ;
177
+ }
178
178
}
179
179
180
180
let a = new Animal (' Jack' );
@@ -205,17 +205,17 @@ a.name = 'Tom';
205
205
206
206
``` ts
207
207
class Animal {
208
- private name;
209
- public constructor (name ) {
210
- this .name = name ;
211
- }
208
+ private name;
209
+ public constructor (name ) {
210
+ this .name = name ;
211
+ }
212
212
}
213
213
214
214
class Cat extends Animal {
215
- constructor (name ) {
216
- super (name );
217
- console .log (this .name );
218
- }
215
+ constructor (name ) {
216
+ super (name );
217
+ console .log (this .name );
218
+ }
219
219
}
220
220
221
221
// index.ts(11,17): error TS2341: Property 'name' is private and only accessible within class 'Animal'.
@@ -225,17 +225,17 @@ class Cat extends Animal {
225
225
226
226
``` ts
227
227
class Animal {
228
- protected name;
229
- public constructor (name ) {
230
- this .name = name ;
231
- }
228
+ protected name;
229
+ public constructor (name ) {
230
+ this .name = name ;
231
+ }
232
232
}
233
233
234
234
class Cat extends Animal {
235
- constructor (name ) {
236
- super (name );
237
- console .log (this .name );
238
- }
235
+ constructor (name ) {
236
+ super (name );
237
+ console .log (this .name );
238
+ }
239
239
}
240
240
```
241
241
@@ -249,11 +249,11 @@ class Cat extends Animal {
249
249
250
250
``` ts
251
251
abstract class Animal {
252
- public name;
253
- public constructor (name ) {
254
- this .name = name ;
255
- }
256
- public abstract sayHi();
252
+ public name;
253
+ public constructor (name ) {
254
+ this .name = name ;
255
+ }
256
+ public abstract sayHi();
257
257
}
258
258
259
259
let a = new Animal (' Jack' );
@@ -267,17 +267,17 @@ let a = new Animal('Jack');
267
267
268
268
``` ts
269
269
abstract class Animal {
270
- public name;
271
- public constructor (name ) {
272
- this .name = name ;
273
- }
274
- public abstract sayHi();
270
+ public name;
271
+ public constructor (name ) {
272
+ this .name = name ;
273
+ }
274
+ public abstract sayHi();
275
275
}
276
276
277
277
class Cat extends Animal {
278
- public eat() {
279
- console .log (` ${this .name } is eating. ` );
280
- }
278
+ public eat() {
279
+ console .log (` ${this .name } is eating. ` );
280
+ }
281
281
}
282
282
283
283
let cat = new Cat (' Tom' );
@@ -291,17 +291,17 @@ let cat = new Cat('Tom');
291
291
292
292
``` ts
293
293
abstract class Animal {
294
- public name;
295
- public constructor (name ) {
296
- this .name = name ;
297
- }
298
- public abstract sayHi();
294
+ public name;
295
+ public constructor (name ) {
296
+ this .name = name ;
297
+ }
298
+ public abstract sayHi();
299
299
}
300
300
301
301
class Cat extends Animal {
302
- public sayHi() {
303
- console .log (` Meow, My name is ${this .name } ` );
304
- }
302
+ public sayHi() {
303
+ console .log (` Meow, My name is ${this .name } ` );
304
+ }
305
305
}
306
306
307
307
let cat = new Cat (' Tom' );
@@ -342,13 +342,13 @@ var cat = new Cat('Tom');
342
342
343
343
``` ts
344
344
class Animal {
345
- name: string ;
346
- constructor (name : string ) {
347
- this .name = name ;
348
- }
349
- sayHi(): string {
350
- return ` My name is ${this .name } ` ;
351
- }
345
+ name: string ;
346
+ constructor (name : string ) {
347
+ this .name = name ;
348
+ }
349
+ sayHi(): string {
350
+ return ` My name is ${this .name } ` ;
351
+ }
352
352
}
353
353
354
354
let a: Animal = new Animal (' Jack' );
0 commit comments