我正在学习Typescript,目前正在学习函数这一章,请看下面的代码:
type ArrMapCallbackFunctionTypeExpression = (value: number, index: number, arr: number[]) => number
function map (arr: number[], cb: ArrMapCallbackFunctionTypeExpression): number[] {
return arr.map(cb);
}
function callback0 () { return 1; }
function callback1 (value: number) {
return value;
}
function callback2 (value: number, index: number) {
return value;
}
function callback3 (value: number, index: number, arr: number[]) {
return value;
}
map([1, 2, 3], callback1)
map([1, 2, 3], callback2)
map([1, 2, 3], callback3)
有人能告诉我为什么上面代码中的callback0
、callback1
和callback2
与类型ArrMapCallbackFunctionTypeExpression
匹配吗?
1条答案
按热度按时间elcex8rz1#
函数可以忽略传递给它们的任何参数,或者根本不声明它们。参数类型从左到右计算,如果它们匹配,那么就可以运行了。