Например, у меня есть запрос http, который возвращает мне объект, который имеет 2 параметра (имя и идентификатор).Я вижу 3 способа описать это.
HTTP-запрос извлекает строку JSON, которая затем анализируется.
Динамический способ
Динамический способ заключается впросто используйте объект, созданный анализатором JSON.interface
- это правильный инструмент для его описания:
export interface MyObject {
name: string;
id: number;
}
// …
const result = JSON.parse(await fetch(…)) as MyObject;
Тяжелый путь ООП
Здесь синтаксический анализатор JSON предоставляет тот же объект, что и ранее, но мы предпочитаем создать еще один.путем создания экземпляра класса:
export class MyObject {
constructor(public name: string, public id: number) {
}
}
// …
const { name, id } = JSON.parse(await fetch(…));
const result = new MyObject(name, id);
Максимально многословный способ ООП
То же самое с еще одним косвенным обращением с использованием сеттеров и геттеров:
export class MyObject {
private _name: string;
private _id: number;
public get name(): string {
return this._name;
}
public set name(value: string) {
this._name = value;
}
public get id(): number {
return this._id;
}
public set id(value: number) {
this._id = value;
}
}
// …
const { name, id } = JSON.parse(await fetch(…));
const result = new MyObject();
result.name = name;
result.id = id;