javascript - 在 typescript 或 javascript 中链接箭头函数

标签 javascript typescript logic arrow-functions

我在“Angular 入门,第二版”一书中偶然发现了以下箭头函数代码。

let isPrime: (n: number) => boolean = n => { 
// body 
};

我想确认这个分割的正确性。

  1. let isPrime = 函数名“isPrime”
  2. (n: number) = 输入参数编号“n”
  3. => boolean = 检查 bool 值的箭头函数(放置逻辑的地方)
  4. =n = 我不明白这部分。这是否意味着如果我将“在第三步中找到素数的逻辑”设置为真,你会得到满足我的逻辑的“n”?
  5. => {} = 我可以在此处放置返回或其他逻辑以进行最终处理。

最后一个问题是多少箭头函数对于链接或curring来说太多了?

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

@Sebastien 给我的答案让我意识到我对箭头函数的错误解释;等号和箭头符号并不总是指向函数,也可以表示数据类型。

以下是我接受的答案的组合版本。

类型

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

//correct usage : return boolean
let isPrime: (n: number) => boolean = n => { 
    // body
    return true
};

//incorrect usage
let isPrime: (n: number) => boolean = n => { 
    // body
    return "wrong"
};

简单

我想我会像下面这样写,除非我有充分的理由使用箭头函数!

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

我的最终测试是这样的。

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 知道传递给函数的参数应该是数字,并且函数的返回值将是 truefalse

符号 isPrime 并不是正式意义上的函数名;它是一个变量,其值恰好是该函数。

在普通的 JavaScript 中,变量声明就是 juss

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

关于javascript - 在 typescript 或 javascript 中链接箭头函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48447364/

相关文章:

php - 如何将foreach循环值获取到下一次迭代php

登录时出现 JavaScript 错误

javascript - 检索客户端请求的 ip 地址

javascript - Webpack - typescript 热模块重新加载 [awesome-typescript-loader]

javascript - 在 NextJs 的服务器端代码中访问静态资源?

typescript - 在 Typescript 中,当我使用 require() 导入时,如何让它理解类型?

java - 匈牙利算法 : How to cover 0 elements with minimum lines?

javascript - 使用 :contains - how to 中的变量

javascript - 具有相同命名属性的 ng 样式和 javascript 对象

ios - 如何在 ios 中有效地一次隐藏多个 View