1abstract class Person {
2    name: string;
3    
4    constructor(name: string) {
5        this.name = name;
6    }
7
8    display(): void{
9        console.log(this.name);
10    }
11
12    abstract find(string): Person;
13}
14
15class Employee extends Person { 
16    empCode: number;
17    
18    constructor(name: string, code: number) { 
19        super(name); // must call super()
20        this.empCode = code;
21    }
22
23    find(name:string): Person { 
24        // execute AJAX request to find an employee from a db
25        return new Employee(name, 1);
26    }
27}
28
29let emp: Person = new Employee("James", 100);
30emp.display(); //James
31
32let emp2: Person = emp.find('Steve');1abstract class Department {
2  constructor(public name: string) {}
3
4  printName(): void {
5    console.log("Department name: " + this.name);
6  }
7
8  abstract printMeeting(): void; // must be implemented in derived classes
9}
10
11class AccountingDepartment extends Department {
12  constructor() {
13    super("Accounting and Auditing"); // constructors in derived classes must call super()
14  }
15
16  printMeeting(): void {
17    console.log("The Accounting Department meets each Monday at 10am.");
18  }
19
20  generateReports(): void {
21    console.log("Generating accounting reports...");
22  }
23}
24
25let department: Department; // ok to create a reference to an abstract type
26department = new Department(); // error: cannot create an instance of an abstract class
27Cannot create an instance of an abstract class.2511Cannot create an instance of an abstract class.department = new AccountingDepartment(); // ok to create and assign a non-abstract subclass
28department.printName();
29department.printMeeting();
30department.generateReports();
31Property 'generateReports' does not exist on type 'Department'.2339Property 'generateReports' does not exist on type 'Department'.Try1abstract class Animal {
2  abstract makeSound(): void;
3
4  move(): void {
5    console.log("roaming the earth...");
6  }
7}Try