-
Notifications
You must be signed in to change notification settings - Fork 45
Expand file tree
/
Copy pathvehicle.ts
More file actions
42 lines (35 loc) · 1.13 KB
/
vehicle.ts
File metadata and controls
42 lines (35 loc) · 1.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import { VehicleType } from './vehicletype.enum';
export default class Vehicle {
type: VehicleType
name: string
constructor(type: VehicleType, name: string) {
this.type = type
this.name = name
}
// Coder une méthode noise qui switchera sur le type du véhicule et renverra
// vrooooom si le vehicule est une voiture
// bep bep si le vehicule est une moto
// brrrrrrrrrrrrr si le vehicule est un camion
// skrrrt skrrrt dans tout autre cas
noise(): string {
switch (this.type) {
case VehicleType.Car:
return "vrooooom";
case VehicleType.Moto:
return "bep bep";
case VehicleType.Truck:
return "brrrrrrrrrrrrr";
default:
return "skrrrt skrrrt";
}
}
// Coder un callback qui renverra la methode noise précedemment codée
// mais transformera la valeur de retour en majuscule
myCb = (): string => {
return this.noise().toUpperCase();
}
// Coder une méthode accelerate qui prend en paramètre un callback et renvoie la valeur de noise() concaténée au callback
accelerate(cb: () => string): string {
return this.noise() + cb();
}
}