方法调用:
this.onChangeScoreGradeType(this.gradingKeyForm.get("scoreGradeType").value.key);
方法定义:
onChangeScoreGradeType(scoreGradeType: KeyValue<string,string>)
{
}
this.gradingKeyForm.get("scoreGradeType").value
的类型为KeyValue<string,string>
为什么没有编译错误,
this.gradingKeyForm.get("scoreGradeType").value.key
这是一个不适合KeyValue<string,string>
实例的字符串?
我在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"
]
}
}
答案 0 :(得分:0)
在this.gradingKeyForm.get("scoreGradeType").value.key
中,类型为TKey
。如果无法推断泛型,则泛型变为any
。因此key
可能属于any
类型,这使其与所有内容兼容。