typescript - טיעון מהסוג 'X' אינו ניתן להקצאה לפרמטר מהסוג 'X'
יום טוב. אני חדש ב-Type Script, משתמש ב-VSCode.
מתקבלים השגיאות הבאות:
<ציטוט>
שגיאה TS2322: סוג '() => string' אינו ניתן להקצאה לסוג 'string'.
שגיאה TS2322: סוג '() => number' אינו ניתן להקצאה לסוג '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 באמצעות שיטות הממשק שהוזכרו למעלה:
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);
}
}
}
כל עזרה תוערך מאוד.
תשובה #1
אתה מחזיר סוגריים:
var value: string = dataObjects[i].getValue();
var id: number = dataObjects[i].getId();
תשובה #2
לעניין מה שזה שווה, אם למישהו יש את הבעיה הזו רק ב-VSCode, פשוט אתחול של VSCode אמור לתקן את זה. לפעמים, Intellisense נראה שמתבלבל עם יבוא או סוגים.
קשור ל-Typescript: ארגומנט מסוג 'RegExpMatchArray' לא ניתן להקצות לפרמטר מסוג 'string'
