Javascript Typescript:what means value是(…args:any[])=>;任何

Javascript Typescript:what means value是(…args:any[])=>;任何,javascript,typescript,Javascript,Typescript,为什么使用值(…args:any[])=>any代替布尔值?这称为类型保护,它提供了比运行时布尔值检查更多的类型信息 值是(…args:any[])=>any不是返回类型为isFunction?@MERN否,这表示“此函数断言参数是类型为(…args:any[])=>any的值,但通常在:之后,我们在typescript中声明了函数的返回类型,除了:变量是TypesyntaxOk,Clear,谢谢@xdumain export function isFunction(value: any): v

为什么使用
值(…args:any[])=>any
代替
布尔值?

这称为
类型保护
,它提供了比运行时布尔值检查更多的类型信息


值是(…args:any[])=>any
不是返回类型为
isFunction
?@MERN否,这表示“此函数断言参数是类型为
(…args:any[])=>any的值,但通常在
之后,我们在typescript中声明了函数的返回类型,除了
:变量是Type
syntaxOk,Clear,谢谢@xdumain
export function isFunction(value: any): value is (...args: any[]) => any {
  return typeof value === 'function';
}
export function isFunctionTypeGuard(value: any): value is (...args: any[]) => any {
  return typeof value === 'function';
}

export function isFunctionBool(value: any): boolean {
  return typeof value === 'function';
}

const doSomething = (fn: any) => {
    // using a runtime type check
    if (isFunctionBool(fn)) {
        fn(1, 2, 3);
    //  ^^ typescript still thinks the type is `any`
    }

    // using a typeguard
    if (isFunctionTypeGuard(fn)) {
        fn(1, 2, 3);
    //  ^^ typescript now knows the type is `(...args: any[]) => any` 
    }    
}