Argument de type 'X' n'est pas assignable à paramètre de type "X"
Bonne journée. Je suis nouveau sur le Type de Script à l'aide VSCode.
Obtenir des erreurs suivantes:
-
erreur TS2322: Type '() => string' n'est pas cessible de type "string".
-
erreur TS2322: Type '() => nombre "n'est pas cessible de type "nombre".
Le Code:
DTO.ts
interface DTO {
getId(): number;
getValue(): string;
}
export = DTO;
LinkedObject.ts
class LinkedObject {
public value: string = "Not Set";
public id: number = 0;
constructor(value?: string, id?: number) {
this.value = value;
this.id = id;
}
}
export = LinkedObject;
J'essaie d'instancier LinkedObject
classe à l'aide mentionnée ci-dessus méthodes d'interface:
TravelClientFormPopulator.ts
class TravelClientFormPopulator {
public populateComboBoxUsingDTOs(dataObjects: Array<DTO>, comboBoxID: string): void {
//Get the combo box
var selectElement = <HTMLSelectElement> document.getElementById(comboBoxID);
//Reset the options
selectElement.options.length = 0;
var linkedObjectsToAdd: LinkedObject[] = new Array<LinkedObject>();
var defaultLinkedObject: LinkedObject = new LinkedObject("Not Selected", 0);
linkedObjectsToAdd.push(defaultLinkedObject);
for (var i = 0; i < dataObjects.length; i++) {
var value: string = dataObjects[i].getValue; //Error here
var id: number = dataObjects[i].getId; //And here
var linkedObject: LinkedObject = new LinkedObject(value, id);
}
}
}
Toute aide sera très appréciée.
Vous devez vous connecter pour publier un commentaire.
Vous manquez parenthèse:
Type '() => string' is not assignable to type 'string'.
est essentiellement à dire dans ce cas "Une fonction qui retourne une chaîne de caractères n'est pas cessible à une variable de type chaîne de caractères" une Fois que vous lisez() => string
correctement, il devrait tous les sens. Si c'était de la pure JS, vous n'auriez pas eu une erreur et que votre variable aurait été pointant vers une fonction au lieu de la valeur de retour et il aurait été encore plus difficile à repérer ce qui se passe.Pour ce qu'elle vaut, si quelqu'un a ce problème uniquement dans VSCode, juste redémarrer VSCode et il devrait résoudre le problème. Parfois, Intellisense semble gâcher, avec des importations ou des types.
Liées à Tapuscrit: Argument de type 'RegExpMatchArray" n'est pas assignable à paramètre de type 'string'
Également ajouter d'autres Scénarios où vous pouvez voir ces Erreurs
Quand vous voyez ces erreurs de Vérifier la Syntaxe d'initialisation ou lors de l'Appel de ces méthodes ou variables,
Vérifiez si les paramètres des fonctions sont de Type de données incorrect,vous avez initialisé en tant que "chaîne" et l'attribution d'un "booléen" ou "numéro"
Par Exemple
1.
2.
Le message d'Erreur ici, c'est parce crochets pour Tableau d'Initialisation est manquant, Il fonctionne même sans elle, mais VS Code alertes rouges.
Remarque:
Rappelez-vous que Javascript typecasts en fonction de la valeur attribuée, Donc tapuscrit informe que le code s'exécute, même avec ces erreurs mises en évidence dans VS Code
Ex:
Je suis en train de faire angulaire 2 et tapuscrits et je ne savais pas que j'avais une place dans ma flèche notation
J'avais
.map(key = >
au lieu de
.map(key =>
Certainement garder vos yeux ouverts pour de stupides erreurs de syntaxe
Dans mon cas, c'était que j'avais une interface personnalisée appelé Élément, mais j'ai importé accidentellement en raison de l'auto-complétion, l'angulaire de l'Élément de classe. Assurez-vous que vous importez à partir du paquet.
Dans mon cas, assez étrangement, j'ai été absent de l'importation de la classe à laquelle il a été se plaindre et mon IDE ne pas le détecter.
Ce problème vient essentiellement lors de votre compilateur obtient pas réussi à comprendre la différence entre l'opérateur de conversion de type chaîne de caractères en Nombre.
vous pouvez utiliser le Numéro de l'objet et passer votre valeur pour obtenir les résultats appropriés pour elle en utilisant Nombre(<<<<...Variable_Name......>>>>)
vous suffit d'utiliser la variable de type tout et supprimer ces types de problème.
code d'erreur :
d'erreur donné Argument de type '{}' n'est pas assignable à paramètre de type 'string'.
Code de réussite :
nous créons var type de variable puis utilisez une variable de type tout et de résoudre ce problème.
tout = gérer tout type de valeur de sorte que la suppression de l'erreur.