ts定义返回函数类型

一般函数声明:

//第一种形式
let c: Function;
c = function(): void {
    console.log('It work');
}

//第二种形式
function test(): Function{
        return function():void{
                console.log('it work');
        }
}

let a:Function = test();
a();

//第三种形式,箭头函数
let d: (para: string) => string;
d = function(param: string): string {
        return param;
}

//第四种形式,类型别名,箭头函数
type e = (para: string) => string;
const f:e = function(pass: string): string{

        return pass;
        
        }

//第五种形式,接口
interface g{
        (para: string): string;
        }
const h: g = function(pass: string): string{
        return pass;
        }

箭头函数:

其实这里只是涉及一个简单的声明定义而已。

正如:

let myAdd: (x:number, y:number) => number =
function(x: number, y: number): number { return x + y; };

只是一个函数类型声明(或匿名函数),如果我们用一个简单的变量声明定义,那其完整格式如下:

let x: number = 10;

其上的 number 部分相当于开头的 (x:number, y:number) => number,这一部分即是类型(或函数类型),只是一种定义;哪怕你使用:

let myAdd: (aaaaaaaaaaaaaaaaaaaaaa:number, bbbbbbbbbbbbbbbbbbbbbbbb:number) => number =
function(x: number, y: number): number { return x + y; };

也是可以的。

同样,一个变量的声明定义也可以是这样:

let x = 10;

这一点自然是归咎于TS自动推导能力了。因此,如上也可以简化成:

const myAdd = (x: number, y: number) => x + y;

= 的前部分一样省略了,交由ts自动推导;而后,就是一个实际的匿名函数写法了。

Happy coding!

你可能感兴趣的:(js)