编程语言
首页 > 编程语言> > 在typescript或javascript中链接箭头函数

在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