Size: a a a

Angular - русскоговорящее сообщество

2021 March 19

B

Bretbas in Angular - русскоговорящее сообщество
Roman Yazvinsky
Для тс есть интерфейсы, они выполняют функцию дто (правда без equals)
да, я юзаю)
источник

B

Bretbas in Angular - русскоговорящее сообщество
но не всегда
источник

RY

Roman Yazvinsky in Angular - русскоговорящее сообщество
Bretbas
да, я юзаю)
В общем, для моделек апи я рекомендую перейти на интерфейсы. Для внутреннего использования - классы (например, Option(name, value) для дропдауна)
источник

B

Bretbas in Angular - русскоговорящее сообщество
Roman Yazvinsky
В общем, для моделек апи я рекомендую перейти на интерфейсы. Для внутреннего использования - классы (например, Option(name, value) для дропдауна)
а в сторе что хранить?
тоже модельки интерфейсов?)
источник

RY

Roman Yazvinsky in Angular - русскоговорящее сообщество
Bretbas
а в сторе что хранить?
тоже модельки интерфейсов?)
Не вижу противоречий, если честно
источник

B

Bretbas in Angular - русскоговорящее сообщество
Roman Yazvinsky
Не вижу противоречий, если честно
просто спрашиваю
источник

RY

Roman Yazvinsky in Angular - русскоговорящее сообщество
Bretbas
просто спрашиваю
Ну да, очень удобно пользоваться интерфейсами если:
1) где-то есть валидация (предполагаю, что сервере)
2) объекты не мутируются
3) не нужен instanceof
источник

B

Bretbas in Angular - русскоговорящее сообщество
Roman Yazvinsky
Ну да, очень удобно пользоваться интерфейсами если:
1) где-то есть валидация (предполагаю, что сервере)
2) объекты не мутируются
3) не нужен instanceof
но почему не классами?
источник

B

Bretbas in Angular - русскоговорящее сообщество
я интерфейсы редко юзаю в angular, и точно не для моделек, которые приходит с бека.
в чем преимущество?
источник

B

Bretbas in Angular - русскоговорящее сообщество
>1) где-то есть валидация (предполагаю, что сервере)
как интерфейсы могут на это влиять?
источник

RY

Roman Yazvinsky in Angular - русскоговорящее сообщество
Bretbas
>1) где-то есть валидация (предполагаю, что сервере)
как интерфейсы могут на это влиять?
Никак. В ts вы только предполагаете тип объекта, класс тут не сильно поможет, только если вы не собираетесь валидировать каждое поле. Это просто бессмысленно
источник

B

Bretbas in Angular - русскоговорящее сообщество
Roman Yazvinsky
Никак. В ts вы только предполагаете тип объекта, класс тут не сильно поможет, только если вы не собираетесь валидировать каждое поле. Это просто бессмысленно
так и интерфейс ts не поможет
источник

RY

Roman Yazvinsky in Angular - русскоговорящее сообщество
Bretbas
так и интерфейс ts не поможет
Но тогда зачем писать классы?
this.http.get<MyInterface>()
или
this.http.get().pipe(map(data => new MyClass(data)))
Какой вариант вам нравится больше?
источник

B

Bretbas in Angular - русскоговорящее сообщество
Roman Yazvinsky
Но тогда зачем писать классы?
this.http.get<MyInterface>()
или
this.http.get().pipe(map(data => new MyClass(data)))
Какой вариант вам нравится больше?
вот такой:
this.http.get<Pagination<BankModel>>(url, { params: queryParams });
источник

B

Bretbas in Angular - русскоговорящее сообщество
где Pagination и BankModel <— это классы
источник

B

Bretbas in Angular - русскоговорящее сообщество
разницы так и не увидел между интерфейсами)
источник

RY

Roman Yazvinsky in Angular - русскоговорящее сообщество
Bretbas
вот такой:
this.http.get<Pagination<BankModel>>(url, { params: queryParams });
Это ошибка
источник

RY

Roman Yazvinsky in Angular - русскоговорящее сообщество
Вам не возвращаются классы. Никто вам их не мапит
источник

B

Bretbas in Angular - русскоговорящее сообщество
а почему это работает тогда?
что тогда мне возвращается?
источник

RY

Roman Yazvinsky in Angular - русскоговорящее сообщество
Вы предполагаете, что вам вернулся класс, но проверьте на instanceof :)
источник