Угловая 6 'строка' не может быть назначена типу 'Number' - PullRequest
0 голосов
/ 09 сентября 2018

У меня проблемы с разработкой, как избавиться от этой ошибки.

this.ticketService.updateTicket(this.edit_ticket)

this.edit_ticket подчеркнут красным и говорит, что тип 'string' нельзя назначить типу 'Number'.

В модели edit_ticket "timeInHours" и "price" являются числами, но я не знаю, как мне объявить их в формате json.

Я пытался

timeInHours: Number;

, но тогда возникает еще одна ошибка: тип 'string' нельзя назначить типу 'NumberConstructor'.

Если я правильно понимаю, значения, которые я получаю из HTML, являются строками, даже из числового ввода. Как я могу это изменить?

Редактирование работает нормально, но ошибка в IDE раздражает.

Код ниже.

edit_ticket = {
    _id: '',
    timeInHours: '',
    location: '',
    price: '',
    vehRegistration: '',
    email: '',
    mobile: ''
}

editTicket(){
    this.edit_ticket._id = this.id;
    this.edit_ticket.timeInHours = (<HTMLInputElement>document.getElementById('timeInput')).value;
    this.edit_ticket.location = (<HTMLInputElement>document.getElementById('locInput')).value;
    this.edit_ticket.price = (<HTMLInputElement>document.getElementById('priceInput')).value;
    this.edit_ticket.vehRegistration = (<HTMLInputElement>document.getElementById('regInput')).value;
    this.edit_ticket.email = (<HTMLInputElement>document.getElementById('emailInput')).value;
    this.edit_ticket.mobile = (<HTMLInputElement>document.getElementById('mobInput')).value;


    this.ticketService.updateTicket(this.edit_ticket)
        .subscribe((data)=>{ 
        console.log("success");
});

Код службы билетов:

import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Ticket } from './ticket';
import { Observable } from 'rxjs';

@Injectable({
  providedIn: 'root'
})
export class TicketService {

  private apiUrl: string = "http://localhost:3000/tickets/";

  constructor(private http: HttpClient) { }

  getTickets(): Observable<Ticket[]>{
    return this.http.get<Ticket[]>(this.apiUrl);
  }

  getTicketsByReg(reg): Observable<Ticket[]>{
    console.log(this.apiUrl + "reg/" + reg);
    return this.http.get<Ticket[]>(this.apiUrl + "reg/" + reg);
  }

  getTicketById(id): Observable<Ticket>{
    console.log(this.apiUrl + id);
    return this.http.get<Ticket>(this.apiUrl + id);
  }

  deleteTicket(id): Observable<Ticket>{
    console.log(this.apiUrl + id);
    return this.http.delete<Ticket>(this.apiUrl + id);
  }

  updateTicket(ticket: Ticket): Observable<any>{
    const headers = new HttpHeaders()
   .append('Content-Type' , 'application/json');

    return this.http.put(this.apiUrl + ticket._id, ticket);
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...