首页 > 解决方案 > 无法在打字稿中设置接口类型的属性

问题描述

我是打字稿编程的初学者,无法设置属性接口类型,所以请指导我。

interface addition { 
    num1: number;
    num2: number;
    add(num1:number, num2:number): number;
}

class Calculator implements addition{
    num1: number;
    num2: number;
    adds: addition;   //

    add(num1: number, num2: number): number { 
        return num1 + num2;
    }    

    sub(num1: number, num2: number): number { 
        let sk: addition = new Calculator()
        console.log(sk.add(2, 3)); 
        this.adds.num1=12;   // showing error here Uncaught TypeError: Cannot set property 'num1' of undefined
        console.log(this.adds.num1)
        return num1-num2
    }
}

let cal = new Calculator();
console.log(cal.sub(2, 3));

标签: javascripttypescriptecma

解决方案


您没有初始化adds声明中的字段。所以在使用它之前sub你需要初始化它的方法:

 this.adds = //initialize with a value before using it in the next line.
 this.adds.num1=12;

推荐阅读