【发布时间】:2020-12-14 03:55:55
【问题描述】:
我知道打字稿中有这样的方法:
function foo(arg: number): string;
function foo(arg: string): number;
function foo(): any {
if (typeof arguments[0] === "string") {
return +arguments[0];
} else {
return arguments[0].toString();
}
}
foo(1) // '1'
foo("hello") // NaN
foo("2") // 2
但是当我有相同数量的参数并且每个参数都是自定义类型时,像这样
interface Dog {
run: number;
}
interface Bird {
fly: number;
}
function foo(arg: Dog): number;
function foo(arg: Bird): number;
function foo(): any {
}
如何分辨这些参数之间的区别
【问题讨论】:
-
通过检查
arg.run或arg.fly是否存在。