Спартак Расширение Аутсервис - PullRequest
1 голос
/ 12 марта 2020

Можно ли расширить сервис аутентификации и добавить в него дополнительные параметры?

В настоящее время выполняется попытка расширения, но возникает ошибка, например:

"ОШИБКА в файле src / app / service / auth / auth-exte.service.ts (15,3): ошибка TS2416: Свойство authorize типа AuthExtendService нельзя назначить одному и тому же свойству в базовом типе AuthService. Тип (userId: строка, пароль: строка, countryCode: string, bussinessType: string) => void 'нельзя назначить type '(userId: string, password: string) => void'. src / app / service / auth / auth-exte.service.ts (21,7): ошибка TS2345: Аргумент типа '{userId: string; пароль; : string; countryCode: string; bussinessType: string;} 'нельзя назначить параметру типа' {userId: string; пароль: string; countryCode: string; businessType: string;} '. Литерал объекта может указывать только известные свойства, но 'bussinessType' не существует в типе '{userId: string; password: string; countryCode: string; businessType: string;}'. Вы имели в виду писать 'businessType'? "

Любой, кто пытается здесь сделать это, нравится Добавление новых параметров.

1 Ответ

0 голосов
/ 12 марта 2020

Typescript не поддерживает такую ​​перегрузку из коробки. Один из способов сделать это - использовать необязательные параметры, такие как:

export class AuthExtendService extends AuthService {
  authorize(userId: string, password: string, businessType?: string): void {
    console.log(businessType);
    this.store.dispatch(
      new AuthActions.LoadUserToken({
        userId: userId,
        password: password,
      })
    );
  }  
}

Вот как вы должны добавить дополнительные параметры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...