---
# System prepended metadata

title: TypeScript 常用型別 -  any 型別介紹
tags: [TypeScript]

---

#  any 型別

* TypeScript 才有型別：**any**
允許任意型別皆通過

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

|使用時機|描述|建議|
|---|---|---|
|動態數據|不確定外部 API 結構時|如果完全未知，則可用 **any**。|
|第三方套件|沒有 TypeScript 型別定義的 JavaScript 套件。|嘗試自定義類型或尋找現有定義；無法定義時使用 **any**。|
複雜類型|難以用 TypeScript 表達的複雜類型。|考慮使用高級型別功能；若不可行，則用 **any**。|
|逐步升級|從 JavaScript 到 TypeScript 的過渡。|過渡期間使用 **any**，逐步替換為準確型別。|
|快速原型|快速開發階段，未重視類型。|初步可用 **any**，最終替換為具體類型。|

## 使用情形如下

```
// 範例一
// Json
const jsonString = '{"x":10,"y":20}'
// 因不知道外部來的資料是陣列還是物件，因此不加注釋
const parsedData = JSON.parse(jsonString); 

// 範例二
// 使用 fetch 取得資料，返回的資料類型為 any
async function fetchUserData(url: string) {
  try {
    const response = await fetch(url);
    const data = await response.json(); // data 是 any 類型
    return data;
  } catch (error) {
    console.error("取得資料時出錯:", error);
    return null;
  }
}

// 呼叫函式並處理返回的資料
async function handleUserData() {
  const url = 'https://api.example.com/user';
  const userData = await fetchUserData(url); // userData 是 any 類型
  if (userData) {
    console.log(userData); // 直接輸出取得的資料
  }
}

handleUserData();
```