function add (a: number, b: number): number{
return a + b;
}
// перегрузка функции
interface MyPosition {
x: number | undefined,
y: number | undefined,
}
interface MyPositionDefault extends MyPosition{
default: string,
}
// обычный вызов
function position(): MyPosition;
// перегрузка
function position(a: number): MyPositionDefault;
function position(a: number, b: number): MyPosition;
function position (a?: number, b?: number) {
if (!a && !b) {
return {x: undefined, y: undefined}
}
if (a && !b) {
return {x: a, y: undefined, default: a.toString()}
}
return {x: a, y: b}
}