在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”=>布尔值
=用于检查布尔值的箭头函数(放置逻辑的位置)=>{}
=我可以将返回或其他逻辑放在这里,用于最终过程李>
最后一个问题是有多少个箭头函数对于链接或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!';
};
要回答上一个问题,这里没有链接,只有一个变量类型定义,后面是赋值