1. => ts中声明函数返回值的方法,不是 es6中的箭头函数
    1. 可选参数后面,不能添加其他参数
    2. 函数的输入,输出要确定类型
  2. :冒号后面都是在声明类型,和代码逻辑没有关系
  3. 函数类型推断
  4. ?可选参数,一定要放在最后面,=默认值 ```typescript // 为函数定义类型 function sum(x:number,y:number):number{ return x+y; }

const getSum:(x:number,y:number) => number = function(x:number,y:number):number { return x+y; }

  1. 函数的类型有两部分组成:
  2. - 参数类型
  3. - 函数返回值的类型
  4. <a name="FBhBT"></a>
  5. ## 函数声明
  6. 1. : void没有返回值
  7. 1. : never 永远没有返回值
  8. ```typescript
  9. // 函数声明,返回值也是一个 number
  10. function add (x: number, y: number, z?: number=20): number {
  11. if (typeof z === 'number') {
  12. return (x + y) * z
  13. }
  14. return x + y
  15. }
  16. // 函数没有返回值
  17. function add (x: number): void {
  18. console.log(x)
  19. }
  20. // 类型永远没返回
  21. function error(message: string): never {
  22. throw new Error(message)
  23. }

void空值

function test():void {
    console.log("test");
}

// 可以把 null和 undefined赋值给其他的数据类型
let und:undefined = undefined

函数表达式

// 函数表达式 => 箭头是函数的返回值
const add2: (x: number, y: number, z?: number) => number = add

// interface
interface SumProps {
  (x: number, y: number, z?: number): number
}
const add2: SumProps = add


// 函数表达式
const add = function add(x: number, y: number, z:number=30): number {
    if (typeof z === 'number') return x + y + z
    return x + y
}
const add2: (x: number, y: number, z?:number=30) => number = add