Size: a a a

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

2016 August 11

АО

Алексей Охрименко in Angular - русскоговорящее сообщество
Vladimir Milenko
Проблема в том, что mongoose завязан на коллбэках
Помоему Rxjs умеет оборачивать нодовские callback-и
источник

R

Roman in Angular - русскоговорящее сообщество
я честно не помню в чем разница в TS между type и interface, в type можно также описать объект. Но implements SomeType не помню можно или нет
источник

AK

Alexander Koshevy in Angular - русскоговорящее сообщество
Roman
я честно не помню в чем разница в TS между type и interface, в type можно также описать объект. Но implements SomeType не помню можно или нет
Так и есть. По сути, можно и так, и так
источник

R

Roman in Angular - русскоговорящее сообщество
Alexander Koshevy
Просто как структуры в C++
я C++ плохо помню но разве там нету отдельно интерфейсы для классов?
источник

АО

Алексей Охрименко in Angular - русскоговорящее сообщество
Интерфейсов у обьекта может быть куча. Тип - только один
источник

VM

Vladimir Milenko in Angular - русскоговорящее сообщество
Алексей Охрименко
Интерфейсов у обьекта может быть куча. Тип - только один
Вспомни наследование и кастинг типов
источник

AK

Alexander Koshevy in Angular - русскоговорящее сообщество
Roman
я C++ плохо помню но разве там нету отдельно интерфейсы для классов?
Там нет интерфейсов (по стандарту 1998 года, более поздние мне не знакомы, т.к. уже 10 лет не пишу на C++), но интерфейсы в TS — это не совсем ООП интерфейсы
источник

AS

Artem Shu in Angular - русскоговорящее сообщество
Модельную структуру приложения имхо проблемно строить на одних интерфейсах. Вот к примеру такая задача - есть  объект Response от сервера, нужно по набору условий вытащить признак его успешности. В классах это решается геттером с условиями, а интерфейс придется внешним методом обрабатывать
источник

AK

Alexander Koshevy in Angular - русскоговорящее сообщество
В том и дело, что они могут (и часто, если посмотреть родные библиотеки ng2) использу/тся именно как структуры
источник

R

Roman in Angular - русскоговорящее сообщество
Какая книга кстати наиболее всеобъемлющая по TS? TypeScript Deep Dive показалось мало. Некоторые вещи лучше в офф доке освещены. Пока наткнулся на Mastering TypeScript
источник

AK

Alexander Koshevy in Angular - русскоговорящее сообщество
На первом проекте я хотел сначала использовать логику, к которой привык на других языках — сначала объявляешь интерфейсы, потом реализации классов для них. Но когда понял, что <объект класса implements I> instanceof <интерфейс I> === false, забил на это дело, и стал использовать интерфейсы как структуры
источник

AK

Alexander Koshevy in Angular - русскоговорящее сообщество
и еще была практика, когда переменная, для которой указан тип интерфейс CatalogEntity не пропускает без жесткого приведения объект класса CatalogCategory, который implements от CatalogEntity
источник

AK

Alexander Koshevy in Angular - русскоговорящее сообщество
точнее не переменная, там возврат был функции
источник

АО

Алексей Охрименко in Angular - русскоговорящее сообщество
Интерфейсы позволяют достичь Dependency Invertion Principle из SOLID
источник

R

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

AK

Alexander Koshevy in Angular - русскоговорящее сообщество
Алексей Охрименко
Интерфейсы позволяют достичь Dependency Invertion Principle из SOLID
Я это имел ввиду, но мне кажется, в TS это не совсем работает так как например в Java
источник

АО

Алексей Охрименко in Angular - русскоговорящее сообщество
Работает. Я понимаю о чем ты говоришь, много чего не доступно в TS, всяких удобных способов работы с ними нет, но интерфейсы в TS полноценные. Они выполняют свою базовую функциональость
источник

AK

Alexander Koshevy in Angular - русскоговорящее сообщество
Алексей Охрименко
Работает. Я понимаю о чем ты говоришь, много чего не доступно в TS, всяких удобных способов работы с ними нет, но интерфейсы в TS полноценные. Они выполняют свою базовую функциональость
Возможно, ты прав. Но вот у меня был один конкретный вопрос: если я указываю в качестве результата функции или аргумента интерфейс, то почему нельзя передать ему класс-реализацию интерфейса, без того, чтобы компилятор отругался или без жесткого приведения (которое пропустит, даже если ты затупил и там оказался скаляр)? Это же ломает базовые принципы?
источник

АО

Алексей Охрименко in Angular - русскоговорящее сообщество
Можно пример в студию?
источник

DB

Dmitry Bogomya in Angular - русскоговорящее сообщество
Возможно, ты прав. Но вот у меня был один конкретный вопрос: если я указываю в качестве результата функции или аргумента интерфейс, то почему нельзя передать ему класс-реализацию интерфейса, без того, чтобы компилятор отругался или без жесткого приведения (которое пропустит, даже если ты затупил и там оказался скаляр)? Это же ломает базовые принципы?
источник