函数的注解
函数注解
函数类型包含两部分:参数类型和返回值类型。 当写出完整函数类型的时候,这两部分都是需要的:
// 函数注解是不变的,变的是函数定义的写法
// 完整版函数定义
let myAdd: (x: number, y: number) => number =
function(x: number, y: number): number {
return x y; };
// 普通函数定义
let myAdd1: (x: number, y: number) => number = function(x, y){
return x y;
};
// 箭头函数定义
let myAdd2: (x: number, y: number) => number = (x, y) => x y;
只要参数类型是匹配的,那么就认为它是有效的函数类型,而不在乎参数名是否正确。
let myAdd: (baseValue: number, increment: number) => number =
function(x: number, y: number): number {
return x y; };
推断类型
**ts会根据值进行类型推断:**如果你在赋值语句的一边指定了类型但是另一边没有类型的话,TypeScript编译器会自动识别出类型。
// 函数声明
function add(x:number, y:number): number {
return x y;
}
// 函数表达式
var add1 = function(x:number, y:number): number{
return x y;
}
// es6函数表达式
var add1 = (x:number, y:number): number => x y;
函数作为对象使用接口注解
- 函数也是对象,还可以通过接口注解函数。
interface AddInterface{
(x:number, y:number): number; //这里返回值前面是冒号
}
var add1: AddInterface = (x, y) => x y;
// 接口就是一个对象
var add2: {
(x:number, y:number): number} = (x, y) => x y;
// 函数注解
var add:(x:number, y:number) => number = (x, y) => x y;
- 本身对象,通过接口注解对象
前两个写法是等效的, 第三种写法接口中不允许
interface