---
# System prepended metadata

title: TypeScript 常用型別 - 函式（Function）
tags: [TypeScript]

---

# TypeScript 常用型別 - 函式（Function）

* 函式陳述式（Function Declaration）
function add(): number => 此處指的是 return 的值，定義為number

![image](https://hackmd.io/_uploads/BJuLErV0a.png)

* 函式表達式（Function Expression）

![image](https://hackmd.io/_uploads/ryZPVH4Aa.png)

* 箭頭函式

![image](https://hackmd.io/_uploads/SkguVrVRa.png)

* 定義函式 
=> 為TypeScript定義函式用，前為參數，後為輸出
```
// 定義函式的型別，所以後面的函式必須長的一樣才行
let add2:numbeedr (x:number,y:number)=>number = function(x: number, y: number):number{
  return x+y
}
```
* 其他寫法
```
let sum:(a:number,b:number)=>number;

sum = function(aaa,bbb){
    return aaa+bbb
}
```
```
type CalculatorFn = (a:number,b:number) => number
const sum: CalculatorFn = (a,b)=>{
    return a+b
}
```
## 範例

```
function add(a: number, b: number): number{
  return a+b;
}

let add2 = function(x: number, y: number):number{
  return x+y
}

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

function strAdd(str1: string, str2: string): string{
  return str1+str2
}

function checkNum(num: number): boolean {
  return num > 10;
}

// 假使函式是沒有 return 值，用於處理其他事情，則寫上 :void => 不回傳值
function printMessage(message: string): void{
  console.log("message");
  alert("322");
  
}
```