Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在typescript或javascript中链接箭头函数_Javascript_Typescript_Logic_Arrow Functions - Fatal编程技术网

在typescript或javascript中链接箭头函数

在typescript或javascript中链接箭头函数,javascript,typescript,logic,arrow-functions,Javascript,Typescript,Logic,Arrow Functions,我在《角度入门,第二版》一书中偶然发现了以下箭头函数代码 我想确认这个细分的正确性 让isPrime=函数名“isPrime” (n:number)=输入参数编号“n” =>布尔值=用于检查布尔值的箭头函数(放置逻辑的位置) 我不明白这个部分。这是否意味着如果我把“第三步求素数的逻辑”设为true,你会得到满足我逻辑的“n” =>{}=我可以将返回或其他逻辑放在这里,用于最终过程 最后一个问题是有多少个箭头函数对于链接或curring来说太多了? 我相信@Fenton对我的理解给出了明确的解释

我在《角度入门,第二版》一书中偶然发现了以下箭头函数代码

我想确认这个细分的正确性

  • 让isPrime
    =函数名“isPrime”
  • (n:number)
    =输入参数编号“n”
  • =>布尔值
    =用于检查布尔值的箭头函数(放置逻辑的位置)
  • 我不明白这个部分。这是否意味着如果我把“第三步求素数的逻辑”设为true,你会得到满足我逻辑的“n”
  • =>{}
    =我可以将返回或其他逻辑放在这里,用于最终过程 最后一个问题是有多少个箭头函数对于链接或curring来说太多了?

    我相信@Fenton对我的理解给出了明确的解释

    @塞巴斯蒂安的回答让我意识到我对箭头函数的错误解释;等号和箭头符号并不总是指向函数,也可以表示数据类型

    下面是我接受的答案的综合版本

    类型 现在让我们来描述这个函数的类型,它接受一个数字,并返回一个布尔值

    //correct usage : return boolean
    let isPrime: (n: number) => boolean = n => { 
        // body
        return true
    };
    
    //incorrect usage
    let isPrime: (n: number) => boolean = n => { 
        // body
        return "wrong"
    };
    
    let isPrime: (n: number) => boolean = n => { 
        // body 
    };
    
    简单的 我想我会这样写,除非我有充分的理由使用箭头函数

    //correct usage : return boolean
    function isPrime(n: number): boolean {
        // body
        return true;
    }
    //incorrect usage
    function isPrime(n: number): boolean {
        // body
        return "wrong";
    }
    
    function isPrime(n: number): boolean {
        // body
    }
    
    我的期末考试是这样的

    let isRightLogic: (n: number) => { host: boolean } = n => { 
       return { host: true };
    }
    console.log(isRightLogic(1)); // always return true but you get the idea.
    

    在您发布的代码中,
    (n:number)=>boolean
    是正在创建的函数的类型签名。函数本身就是

    n => {
      // body
    }
    
    n
    是由类型签名指示的参数名。因此,Typescript知道传递给函数的参数应该是数字,函数的返回值将是
    true
    false

    符号
    isPrime
    实际上不是形式意义上的函数名;它是一个变量,它的值正好是这个函数

    在纯JavaScript中,变量声明将是juss

    let isPrime = n => {
      // body
    };
    

    这里有一些其他的看待它的方式,它们揭示了不同的观点

    平原 这是一个古老的学派,只是一个接受
    n
    的函数,它应该是一个数字,在身体的某个地方,它返回true或false

    let isPrime = function(n) { 
        // body 
    };
    
    箭头函数 让我们使用一个箭头函数,而不是function关键字(根据函数体的不同,这里会有一些行为变化)

    删除括号 从技术上讲,我们不需要这些括号(尽管我认为没有括号会影响可读性:

    let isPrime = n => { 
        // body 
    };
    
    类型 现在让我们来描述这个函数的类型,它接受一个数字,并返回一个布尔值

    //correct usage : return boolean
    let isPrime: (n: number) => boolean = n => { 
        // body
        return true
    };
    
    //incorrect usage
    let isPrime: (n: number) => boolean = n => { 
        // body
        return "wrong"
    };
    
    let isPrime: (n: number) => boolean = n => { 
        // body 
    };
    
    简单的 我想我会这样写,除非我有充分的理由使用箭头函数

    //correct usage : return boolean
    function isPrime(n: number): boolean {
        // body
        return true;
    }
    //incorrect usage
    function isPrime(n: number): boolean {
        // body
        return "wrong";
    }
    
    function isPrime(n: number): boolean {
        // body
    }
    

    我将把这个陈述分为两部分

    第1部分-变量类型定义

    let isPrime: (n: number) => boolean 
    
    isPrime
    变量的类型定义。在这种情况下,
    isPrime
    将包含一个函数:

    (n: number) => boolean 
    
    它接受一个
    number
    类型的参数,并返回一个
    boolean

    第2部分-分配给
    isPrime
    变量的实际值(在
    =
    符号之后)

    这是实际值,根据类型定义,它是一个接受一个参数的函数……但在这里它是不完整的,因为主体中没有返回值

    这是可以接受的:

    let isPrime: (n: number) => boolean = n => { 
        return true
    };
    
    但这将违反返回类型定义

    let isPrime: (n: number) => boolean = n => { 
        return 'wrong!';
    };
    
    要回答上一个问题,这里没有链接,只有一个变量类型定义,后面是赋值