Estoy tratando de hacer una clase con mecanografiado 2.0.3 pero tengo algunos problemas y no sé por qué.
este es mi codigo
import { Component, OnInit } from '@angular/core'; import {Car} from '../interfaces/car'; class PrimeCar implements Car { constructor(public vin, public year, public brand, public color) {} } @Component({ selector: 'rb-test', templateUrl: './test.component.html', styleUrls: ['./test.component.css'] }) export class TestComponent implements OnInit { displayDialog: boolean; car: Car = new PrimeCar(null, null, null , null); selectedCar: Car; newCar: boolean; cars: Car[]; constructor() { } ngOnInit() { this.cars = [ {vin: '111', year: '5554' , brand: '5646' , color: '6466' }, {vin: '111', year: '5554' , brand: '5646' , color: '6466' }, {vin: '111', year: '5554' , brand: '5646' , color: '6466' }, {vin: '111', year: '5554' , brand: '5646' , color: '6466' } ]; } showDialogToAdd() { this.newCar = true; this.car = new PrimeCar(null, null, null, null); this.displayDialog = true; } save() { const cars = [...this.cars]; if (this.newCar) { cars.push(this.car); } else { cars[this.findSelectedCarIndex()] = this.car; } this.cars = cars; this.car = null; this.displayDialog = false; } delete() { const index = this.findSelectedCarIndex(); this.cars = this.cars.filter((val, i) => i !== index); this.car = null; this.displayDialog = false; } onRowSelect(event) { this.newCar = false; this.car = this.cloneCar(event.data); this.displayDialog = true; } cloneCar(c: Car): Car { const car = new PrimeCar(null, null, null, null); for (let prop: string in c) { car[prop] = c[prop]; } return car; } findSelectedCarIndex(): number { return this.cars.indexOf(this.selectedCar); } }En el método cloneCar, tengo este error al intentar escribir:
for (let prop: string in c) { ...}Tslint: el identificador 'prop' nunca se reasigna, use const en lugar de let
esta es una captura de imagen de mi IDE: ver error aquí
NB: estoy usando este código en la versión 2.3.0 del proyecto angular
Un poco de ayuda, por favor!
Su IDE es correcto. Estás declarando prop con let y no con const .
let es para variables que están sujetas a cambios. Por ejemplo:
let x = 5; x = 7; Declaramos x y luego cambiamos su valor.
const es para valores que no cambiarán. Por ejemplo:
const x = 5; x = 7; // Throws an error. Entonces, en su caso, como prop no cambia y no cambiará, tiene que ser una constante ( const ):
for (const prop: string in c) { ...}Consulte esta documentación para una comprensión más profunda.
prop variable sólo se utiliza para leer. no le asignas nada para que no cambie. esto significa que debe ser const no let.
En primer lugar, es solo un error de pelusa que le dice que es mejor usar const en lugar de let si no está reasignando la variable.
El segundo es que iría con Object.assign() en su lugar, que hace lo mismo pero es de una sola línea.