méthode appel:dactylographiés n'a pas d'erreur de compilation bien mauvais type est passé à la méthode
this.onChangeScoreGradeType(this.gradingKeyForm.get("scoreGradeType").value.key);
définition de la méthode:
onChangeScoreGradeType(scoreGradeType: KeyValue<string,string>)
{
}
this.gradingKeyForm.get("scoreGradeType").value
est de type KeyValue<string,string>
Pourquoi se produit il n'y a pas d'erreur de compilation, que
this.gradingKeyForm.get("scoreGradeType").value.key
qui est une chaîne ne rentre pas dans une instance KeyValue<string,string>
?
Que dois-je modifier dans mes paramètres TypeScript?
export default class KeyValue<TKey,TValue>
{
constructor(public key: TKey,public value: TValue)
{
}
}
tsconfig.json
{
"compilerOptions": {
"baseUrl": "",
"declaration": false,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"lib": ["es6", "dom"],
"mapRoot": "./",
"module": "es6",
"moduleResolution": "node",
"outDir": "../dist/out-tsc",
"sourceMap": true,
"target": "es5",
"typeRoots": [
"../node_modules/@types"
]
}
}
Pouvez-vous fournir la définition de 'KeyValue'? –
Bien sûr ... voir ma mise à jour! – Pascal
[J'ai compiler l'erreur ...] (https://www.typescriptlang.org/play/index.html#src=class%20KeyValue%3CTKey%2C%20TValue%3E%0D%0A%7B%0D%0A % 20% 20% 20% 20constructeur (public% 20key% 3A% 20TKey% 2C% 20public% 20value% 3A% 20TValue)% 0D% 0A% 20% 20% 20% 20% 7B% 0D% 0A% 0D% 0A% 20% 20% 20% 20% 7D% 0D% 0A% 7D% 0D% 0A% 0D% 0Afonction% 20onChangeScoreGradeType (scoreGradeType% 3A% 20KeyValue% 3Cstring% 2C% 20string% 3E)% 20% 0D% 0A% 7B% 0D % 0A% 0D% 0A% 7D% 0D% 0A% 0D% 0Allet% 20test% 20% 3D% 20new% 20KeyValue ('test% 20key'% 2C% 20'test% 20value ')% 3B% 0D% 0A% 0D % 0AonChangeScoreGradeType (test.key)% 3B) –