Skip to content

Commit f7825a1

Browse files
classes and interfaces
1 parent 858950e commit f7825a1

File tree

4 files changed

+112
-37
lines changed

4 files changed

+112
-37
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
"use strict";
2+
let add;
3+
add = (n1, n2) => {
4+
return n1 + n2;
5+
};
6+
let iAdd;
7+
iAdd = (n1, n2) => {
8+
return n1 + n2;
9+
};
10+
class Person {
11+
constructor(name) {
12+
if (name) {
13+
this.name = name;
14+
}
15+
else {
16+
console.log('Hi!');
17+
}
18+
}
19+
greet(phrase) {
20+
console.log(phrase);
21+
}
22+
}
23+
console.log(new Person('Mikes'));
Lines changed: 29 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,42 @@
1-
class Department {
2-
private employees: string[] = [];
3-
4-
constructor(private readonly id: string, public name: string) {
5-
this.id = id;
6-
this.name = name;
7-
}
8-
9-
describe(this: Department) {
10-
console.log('Department: ' + this.name);
11-
}
1+
type AddFn = (a: number, b: number) => number;
2+
let add: AddFn;
3+
add = (n1: number, n2: number) => {
4+
return n1 + n2;
5+
}
126

13-
addEmployee(employee: string) {
14-
this.employees.push(employee);
15-
}
7+
interface IAddFn {
8+
(a: number, b: number): number;
9+
}
1610

17-
printEmployeeInfo() {
18-
console.log(this.employees.length);
19-
console.log(this.employees)
20-
}
11+
let iAdd: IAddFn;
12+
iAdd = (n1: number, n2: number) => {
13+
return n1 + n2;
2114
}
2215

23-
class ITDepartment extends Department {
24-
constructor(id: string, public admins: string[]) {
25-
super(id, 'IT');
26-
this.admins = admins;
27-
}
16+
interface Named {
17+
readonly name?: string;
18+
outputName?: string;
2819
}
2920

30-
const dep = new ITDepartment('it1', ['John', 'Celvin']);
31-
console.log(dep)
21+
interface Greetable extends Named {
22+
greet(phrase: string): void;
23+
}
3224

33-
class Accounting extends Department {
34-
constructor(id: string, private reports: string[]) {
35-
super(id, 'Accounting');
36-
this.reports = reports;
37-
}
25+
interface Another {}
3826

39-
addReport(text: string) {
40-
this.reports.push(text);
27+
class Person implements Greetable, Another {
28+
name?: string;
29+
constructor(name?: string) {
30+
if (name) {
31+
this.name = name;
32+
} else {
33+
console.log('Hi!')
34+
}
4135
}
4236

43-
getReports() {
44-
console.log(this.reports)
37+
greet(phrase: string): void {
38+
console.log(phrase)
4539
}
4640
}
4741

48-
const acc = new Accounting('it1', []);
49-
acc.addReport('Something went wrong')
50-
console.log(acc)
42+
console.log(new Person('Mikes'))
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
type AddFn = (a: number, b: number) => number;
2+
let add: AddFn;
3+
add = (n1: number, n2: number) => {
4+
return n1 + n2;
5+
}
6+
7+
interface IAddFn {
8+
(a: number, b: number): number;
9+
}
10+
11+
let iAdd: IAddFn;
12+
iAdd = (n1: number, n2: number) => {
13+
return n1 + n2;
14+
}
15+
16+
interface Named {
17+
readonly name?: string;
18+
outputName?: string;
19+
}
20+
21+
interface Greetable extends Named {
22+
greet(phrase: string): void;
23+
}
24+
25+
interface Another { }
26+
27+
class Person implements Greetable, Another {
28+
name?: string;
29+
constructor(name?: string) {
30+
if (name) {
31+
this.name = name;
32+
} else {
33+
console.log('Hi!')
34+
}
35+
}
36+
37+
greet(phrase: string): void {
38+
console.log(phrase)
39+
}
40+
}
41+
42+
console.log(new Person('Mikes'))
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
interface Person {
2+
name: string;
3+
age: number;
4+
5+
greet(phrase: string): void;
6+
}
7+
let user1: Person;
8+
9+
user1 = {
10+
name: 'john',
11+
age: 23,
12+
greet(phrase: string) {
13+
console.log(phrase + ' ' + this.name)
14+
}
15+
}
16+
console.log(user1)
17+
18+
user1.greet('Hi there - I am ')

0 commit comments

Comments
 (0)