“X"类型的参数不能分配给“X"类型的参数 [英] Argument of type 'X' is not assignable to parameter of type 'X'
本文介绍了“X"类型的参数不能分配给“X"类型的参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
美好的一天.我是 Type Script 的新手,使用 VSCode.
Good day. I'm new to Type Script, using VSCode.
出现以下错误:
错误 TS2322:类型 '() => string' 不可分配给类型 'string'.
error TS2322: Type '() => string' is not assignable to type 'string'.
错误 TS2322:类型 '() => number' 不能分配给类型 'number'.
error TS2322: Type '() => number' is not assignable to type 'number'.
代码:
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;
我正在尝试使用上述接口方法实例化 LinkedObject
类:
I am trying to instantiate LinkedObject
class using above mentioned interface methods:
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);
}
}
}
任何帮助将不胜感激.
推荐答案
你错过了括号:
var value: string = dataObjects[i].getValue();
var id: number = dataObjects[i].getId();
这篇关于“X"类型的参数不能分配给“X"类型的参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文