I am a beginner in Typescript. I am trying to learn generics.
type Summable = string | number;
interface Calculation<Type> {
number1: Type;
number2: Type;
operation(): Type;
}
class Addition<Summable> implements Calculation<Summable> {
number1: Summable;
number2: Summable;
constructor(number1: Summable, number2: Summable) {
this.number1 = number1;
this.number2 = number2;
}
operation(): Summable {
console.log(`Calculating Addition .... between ${this.number1} and ${this.number2}`);
let val: Summable = this.number1 + this.number2;
return val;
}
}
function main() {
let adder: Addition<number> = new Addition<number>(2, 3);
console.log(adder.operation());
}
main();
I am getting the following error –
Operator '+' cannot be applied to types 'Summable' and 'Summable'.ts(2365)
I researched a bit and found out a github issue regarding it. Can anyone please tell why I am getting this error as + operator is valid in both number and string?