我有一个函数,其之间有联合类型string和 函数类型。如何编写类型保护来缩小该函数类型?(以下内容不起作用。)
interface Callback {
(args: any[]): void
}
var fn = function(arg: string | Callback) {
if (typeof arg == 'Callback') {
arg.call([]);
}
}
Run Code Online (Sandbox Code Playgroud)
typeof永远不会回来'Callback'。在这种情况下,它将进行检查instanceof Function:
interface Callback {
(args: any[]): void
}
var fn = function(arg: string | Callback) {
if (arg instanceof Function) {
arg.call([]);
}
};
Run Code Online (Sandbox Code Playgroud)
或者这也有效:
if (typeof arg === "function") {
arg.call([]);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1694 次 |
| 最近记录: |