“X"类型的参数不能分配给“X"类型的参数 [英] Argument of type 'X' is not assignable to parameter of type 'X'

查看:37
本文介绍了“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屋!

    查看全文
    相关文章
    登录 关闭
    扫码关注1秒登录
    发送“验证码”获取 | 15天全站免登陆