Каким образом можно работать с классами и интерфейсами в TypeScript?

Пользователь

от norval_cronin , в категории: Компьютерные технологии , 10 месяцев назад

Каким образом можно работать с классами и интерфейсами в TypeScript?

Facebook Vk Ok Twitter Telegram Whatsapp

1 ответ

Пользователь

от dolly.predovic , 10 месяцев назад

@norval_cronin 

В TypeScript классы и интерфейсы используются для описания структур данных, а также для определения функционала объектов.


Описание класса:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
class MyClass {
  private prop: string;
  constructor(prop: string) {
    this.prop = prop;
  }
  public getProp(): string {
    return this.prop;
  }
  public setProp(value: string) {
    this.prop = value;
  }
}


Описание интерфейса:

1
2
3
4
5
interface MyInterface {
  prop: string;
  getProp(): string;
  setProp(value: string): void;
}


Интерфейс определяет только сигнатуры методов, а класс описывает их реализацию. Класс может реализовывать несколько интерфейсов:

 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
interface MyInterface1 {
  prop: string;
  getProp1(): string;
  setProp1(value: string): void;
}

interface MyInterface2 {
  getProp2(): string;
}

class MyClass implements MyInterface1, MyInterface2 {
  private prop: string;
  constructor(prop: string) {
    this.prop = prop;
  }
  public getProp1(): string {
    return this.prop;
  }
  public setProp1(value: string) {
    this.prop = value;
  }
  public getProp2(): string {
    return "Test";
  }
}


Для создания объекта класса используется ключевое слово new:

1
2
3
4
const myObject = new MyClass("Hello");
console.log(myObject.getProp()); // выведет "Hello"
myObject.setProp("World");
console.log(myObject.getProp()); // выведет "World"


Интерфейсы могут использоваться для описания типов параметров функций и переменных:

1
2
3
4
5
6
function createObject(obj: MyInterface) {
  console.log(obj.getProp());
}

const myObject: MyInterface = new MyClass("Test");
createObject(myObject); // выведет "Test"