I have following interface
interface foo1 {
add(num1: number, num2: number): number;
subtract(num1: number, num2: number): number;
}
Now I create an object in shape of foo1
let myFoo1: foo1;
myFoo1.add(5, 6); // OK
myFoo1.subtract(5, 6); // OK
Fine, now I create a new interface which I want it to act as an extension to the first one
interface foo2 {
add(num1: number, num2: number, num3: number): number;
}
Now I create a new object in shape of foo2
let myFoo2: foo2;
myFoo2.add(5, 6, 7); // OK
myFoo2.subtract(5, 6); // ERROR
Basing myFoo2 on foo2 interface makes me to use an "upgraded" version of add but now I can't access subtract function
Here's what I've come up with
let myFoo2: foo1 & foo2;
myFoo2.add(5, 6, 7); // OK
myFoo2.subtract(5, 6); // OK
Now I can use both the newer version of add and also access subtract function
Is it the proper way of doing stuff or am I doing something wrong?
extendit? See typescriptlang.org/docs/handbook/…