Typescript中的'Function'类型和'()=> {}'类型之间的区别?

时间:2019-12-13 18:56:34

标签: typescript

如果我要声明一个变量func,它将使用Typescript为它分配一个函数,那么我已经看到了两种不同的方法:

1)let func: Function

2)let func: () => {}

有什么区别?仅箭头功能是第二位,所有非箭头功能是第一位吗?

1 个答案:

答案 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;

Playground