pho*_*att 3 javascript logic typescript arrow-functions
我在"Angular,第二版入门"一书中偶然发现了下面的箭头函数代码.
let isPrime: (n: number) => boolean = n => {
// body
};
Run Code Online (Sandbox Code Playgroud)
我想确认这个细分的正确性.
let isPrime =函数名称"isPrime"(n: number) =输入参数号"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"
};
Run Code Online (Sandbox Code Playgroud)
我想我会写如下,除非我有充分的理由使用箭头功能!
//correct usage : return boolean
function isPrime(n: number): boolean {
// body
return true;
}
//incorrect usage
function isPrime(n: number): boolean {
// body
return "wrong";
}
Run Code Online (Sandbox Code Playgroud)
我最后的测试是这样的.
let isRightLogic: (n: number) => { host: boolean } = n => {
return { host: true };
}
console.log(isRightLogic(1)); // always return true but you get the idea.
Run Code Online (Sandbox Code Playgroud)
在您发布的代码中,(n: number) => boolean是正在创建的函数的类型签名.功能本身就是
n => {
// body
}
Run Code Online (Sandbox Code Playgroud)
该n是参数名,类型签名指示.因此,Typescript知道传递给函数的参数应该是数字,并且函数的返回值将是true或false.
符号isPrime实际上不是正式意义上的函数名称; 它是一个变量,其值恰好是该函数.
在纯JavaScript中,变量声明将是juss
let isPrime = n => {
// body
};
Run Code Online (Sandbox Code Playgroud)
以下是一些其他观察方式,揭示了不同的观点.
这是旧学校,只是一个接受n应该是数字的函数,并且在某个地方它返回真或假.
let isPrime = function(n) {
// body
};
Run Code Online (Sandbox Code Playgroud)
让我们使用箭头函数,而不是函数关键字(这里有一些行为改变,具体取决于函数体)...
let isPrime = (n) => {
// body
};
Run Code Online (Sandbox Code Playgroud)
我们在技术上不需要那些括号(虽然我认为可读性在没有它们的情况下会受到影响:
let isPrime = n => {
// body
};
Run Code Online (Sandbox Code Playgroud)
现在让我们描述这个函数的类型,它是一个数字,并返回一个布尔值.
let isPrime: (n: number) => boolean = n => {
// body
};
Run Code Online (Sandbox Code Playgroud)
我想我会写如下,除非我有充分的理由使用箭头功能!
function isPrime(n: number): boolean {
// body
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
77 次 |
| 最近记录: |