Между этими двумя понятиями нет принципиальной разницы.
Если вы посмотрите на apollo-link-http
источник пакета здесь , вы увидите, что экспортированный метод createHttpLink
возвращает новый экземпляркласса ApolloLink
, инициализированного параметрами, которые вы передали createHttpLink
(строки 62-194).
В конце того же файла вы видите, что пакет также экспортирует класс HttpLink
, который расширяет класс ApolloLink
(строки 256-261):
export class HttpLink extends ApolloLink {
public requester: RequestHandler;
constructor(opts?: HttpLink.Options) {
super(createHttpLink(opts).request);
}
}
Как видно из приведенного выше кода, при создании http-ссылки apollo путем создания нового экземпляра HttpLink
класс, параметры, которые вы передаете в конструктор, внутренне передаются в createHttpLink
, который возвращает экземпляр ApolloLink
, как упомянуто выше, а RequestHandler
этого экземпляра передается (то есть копируется) в новый HttpLink
родительский экземпляр, который также является экземпляром ApolloLink
(см. строки 96-124 здесь для просмотра собственного конструктора ApolloLink
).
Обратите внимание, что apollo-link-http
документы do NOT пакета включают в себяСинтаксис new HttpLink
, поэтому я буду придерживаться синтаксиса createHttpLink
для будущей совместимости.