interface MyInterface {
(select: string): number;
(element: number): string;
}
How do I use above interface? What is the use case?
It means that the function has two different signatures, or in other wise overloading.
For example:
interface MyInterface {
(select: string): number;
(element: number): string;
}
let fn: MyInterface;
fn = (obj): any => {
// do something
return null;
}
let str = fn(3); // type of str is string
let num = fn("string"); // typeof num is number
let error = fn(false); // error as false is neither string or number