如果我要声明一个变量func
,它将使用Typescript为它分配一个函数,那么我已经看到了两种不同的方法:
1)let func: Function
2)let func: () => {}
有什么区别?仅箭头功能是第二位,所有非箭头功能是第一位吗?
答案 0 :(得分:2)
let func
:该功能对所有功能子类型均有效。 let func: () => {}
定义了不接受参数并返回对象的函数签名
let anyFunction: Function;
let dummyFunction: () => {};
let voidFunction: () => void;
function dummy() {
}
function dummy2() {
return {}
}
function dumm3(arg:number) {
return {}
}
// error dummy has ne return type.
dummyFunction = dummy;
// its ok dummy has void return type
voidFunction = dummy;
// its ok
dummyFunction = dummy2;
//error dumm3 has argument
dummyFunction = dumm3;
// its all ok
anyFunction = dumm3;
anyFunction = dummy2;
anyFunction = dummy;