Аргумент типа «X» нельзя присвоить параметру типа «строка»

Итак, я получаю эту ошибку: Аргумент типа '{ "username:": string; "пароль": строка; }" не может быть назначен параметру типа "строка"

Мой код:

export class LoginPage implements OnInit {

  responseData : any;
  userData = {"username:":"", "password":""};

  constructor(private menu: MenuController, private authloginService: AuthloginService, public navCtrl : NavController ) {   
  }

  fazerLogin(){

     this.authloginService.logarConta(this.userData, 'login').then((result)=>{ // error here
      this.responseData = result;
      console.info(this.responseData);
      this.navCtrl.navigateForward('home')

     });

EDIT1: AuthloginService с функцией logarConta:

export class AuthloginService {



  private API_URL: 'https://myapi.com/api';

  constructor(public http: HttpClient) { }

  logarConta(email: string, password:string){
    return new Promise((resolve, reject) =>{
      var data = {
        name: name,
        email: email,
        password: password,
        message: 'Test',

      };

      this.http.post(this.API_URL + 'login', data)
        .subscribe((result: any) =>{
          resolve(result.json())
        }, 
        (message) =>{
          reject(message.json())
        })
    });

Здравствуйте, не могли бы вы поделиться с нами определением вашей функции AuthloginService.logarConta?

John Graham 23.04.2019 14:09

первый аргумент authLoginService.logarConta() - это строка, а не объект

porgo 23.04.2019 14:11

@JohnGraham только что отредактировал

rzp 23.04.2019 14:12
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
1
3
1 571
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Это должно быть:

this.authloginService.logarConta(this.userData.username, this.userData.password)
.then((result)=>{
  this.responseData = result;
  console.info(this.responseData);
  this.navCtrl.navigateForward('home')
 });

Но я не уверен, что этот logarConta метод хорош. Потому что у вас есть аргумент email, а у вашего userData = {"username:":"", "password":""}; нет ключа электронной почты. Вы должны проверить, правильный ли это подход.

Потрясающе, спасибо, что поделились. Проблема в том, что у вас есть объект userData, который имеет 2 строковых свойства: имя пользователя и пароль. Ваша функция logarConta ожидает 2 строковых переменных, адрес электронной почты и пароль, но вы просто передаете 1 объект. Вы можете исправить это, изменив свой вызов, чтобы он выглядел так:

  this.authloginService.logarConta(this.userData.username, this.userdata.password).then((result)=>{ // error here
  this.responseData = result;
  console.info(this.responseData);
  this.navCtrl.navigateForward('home')

 });

Это правильно сопоставит свойства объекта с переменными, которые ожидает функция.

Спасибо за ответ!

rzp 23.04.2019 14:38
this.authloginService.logarConta(...this.userData, 'login')

Другие вопросы по теме