包含声明和赋值两部分,你不要混到一起去看。
首先是声明:
// 伪代码,实际会报错,理解意思就行
let str: string; // str 是一个 string 类型
let num: number; // num 是一个 number 类型
let func1: Function; // func1 是一个 Function 类型(不限制有没有入参、返回值是什么)
let func2: () => string; // func2 是一个返回值是 string 的 Function 类型
let func3: (number) => string; // func3 是一个有一个 number 类型入参、返回值是 string 的 Function 类型
然后是赋值:
str = '';
num = 0;
func1 = () => {};
func2 = () => '';
func3 = (i) => i + '';
上面几个你把声明和赋值合起来,都是下面这样,你没有问题吧?
let str: string = '';
let num: number = 0;
let func1: Function = () => {};
如果没有问题,那为啥到了后面的你就认为有不同了呢?
let func2: () => string = () => '';
let func3: (number) => string = (i) => i + '';
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…