在typescript或javascript中链接箭头函数
作者:互联网
我在“Angular,第二版入门”一书中偶然发现了下面的箭头函数代码.
let isPrime: (n: number) => boolean = n => {
// body
};
我想确认这个细分的正确性.
>让isPrime =函数名称“isPrime”
>(n:数字)=输入参数号“n”
> => boolean =用于检查布尔值的箭头函数(放置逻辑的位置)
> = n =我没有得到这个部分.这是否意味着如果我把“逻辑在第三步中找到素数”并且是真的,你得到满足我逻辑的“n”?
> => {} =我可以在这里放置返回或其他逻辑以进行最终处理.
最后一个问题是有多少箭头功能对于链接或限制来说太多了?
我相信@Fenton对我的理解给出了明确的解释.
@Sebastien给了我答案,让我意识到我对箭头功能的错误解释;等号和箭头符号并不总是指向函数,也可以表示数据类型.
以下是我接受的答案的组合版本.
类型
现在让我们描述这个函数的类型,它是一个数字,并返回一个布尔值.
//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.
解决方法:
我将分两部分分解
第1部分 – 变量类型定义
let isPrime: (n: number) => boolean
是isPrime变量的类型定义.在这种情况下,isPrime将包含一个函数:
(n: number) => boolean
它接受一个类型为number的参数并返回一个布尔值
第2部分 – 分配给isPrime变量的实际值(在=符号之后)
n => {
// body
};
这是实际值,根据类型定义,它是一个带有一个参数的函数……但是它在这里是不完整的,因为正文中没有返回值.
这是可以接受的:
let isPrime: (n: number) => boolean = n => {
return true
};
但这会违反返回类型定义
let isPrime: (n: number) => boolean = n => {
return 'wrong!';
};
要回答你的上一个问题,这里没有链接,只有一个变量类型定义,后跟一个赋值.
标签:javascript,logic,typescript,arrow-functions 来源: https://codeday.me/bug/20190715/1464856.html