Forgot-password.component.ts (44,7): erreur TS2742: Le type déduit de 'nom d'utilisateur' ne peut pas être nommé sans référence à '... / node_modules / @ angular / forms / forms'. Ce n'est probablement pas portable. Une annotation de type est nécessaire.
import { Component, Output, EventEmitter } from '@angular/core';
import { Router } from '@angular/router';
import { FormGroup, FormBuilder, Validators } from '@angular/forms';
import { User } from '../../models';
import { ValidateUsername } from '../../validators/userid-validator';
@Component({
selector: 'app-forgot-password',
templateUrl: './forgot-password.component.html',
styleUrls: ['./forgot-password.component.scss']
})
export class ForgotPasswordComponent {
forgotPasswordForm: FormGroup;
@Output() resetPassword: EventEmitter<any> = new EventEmitter<any>();
@Output() onSubmit: EventEmitter<User> = new EventEmitter<User>();
constructor(private formBuilder: FormBuilder, private router: Router) {
this.forgotPasswordForm = this.formBuilder.group({
username: ['', [Validators.required, ValidateUsername]]
});
}
get username() { return this.forgotPasswordForm.get('username'); }
passwordToken(event$) {
this.onSubmit.emit(event$.value);
}
}
Lors de l'exécution de l'applicationn, j'obtiens une erreur à cette ligne 'get username () {return this.forgotPasswordForm.get (' username '); } '
3 Réponses :
Devrait essayer d'avoir un type de rappel, comme ceci
get username(): AbstractControl {
return this.forgotPasswordForm.get('username');
}
Je ne pense pas que le type de retour any devrait être encouragé. devrait utiliser string
Quand il dit
Ce n'est probablement pas portable. Une annotation de type est nécessaire.
Parfois, vous devez vérifier votre tsconfig.json et voir s'il y a quelque chose qui ne va pas avec "baseUrl", "chemins" et les packages liés.
Mais dans ce cas, TS accuse de ne pas l'avoir tapé car il est dans votre configuration ts, donc soit vous pouvez le taper comme "any", créer une interface pour lui ou taper comme forcément, dans ce cas, sous forme de chaîne.
Vous devez être explicite sur le type de retour de la propriété.
get username(): AbstractControl { return this.forgotPasswordForm.get('username'); }
ForgotPasswordForm est un FormGroup et son get ( ) renvoie une méthode AbstractControl avec le sous-classes
Sous-classes
Il existe un problème TypeScript qui peut provoquer cette erreur après l'utilisation du
lien npm < / code>