Logo

新人日誌

首頁關於我部落格

新人日誌

Logo

網站會不定期發佈技術筆記、職場心得相關的內容,歡迎關注本站!

網站
首頁關於我部落格
部落格
分類系列文

© 新人日誌. All rights reserved. 2020-present.

TypeScript 原始型別(Primitive Types)完整介紹:初學者一定要懂的 7 種基本資料型別

最後更新:2026年5月6日基礎概念

TypeScript 最重要的核心觀念之一,就是「型別」。

型別決定了你的變數可以放什麼樣的資料,寫對型別,程式碼會更安全、更容易讀、也更不容易出錯。

TypeScript 的型別分成兩大類:原始型別(Primitive Types) 和物件型別(Object Types)。

這篇文章會把七種原始型別一次講清楚,每一種都附上範例。

不過在認識這些型別之前,要先了解一個觀念:型別標註(Type Annotation)。

型別標註(Type Annotation):告訴 TypeScript「這是什麼型別」

TypeScript 跟 JavaScript 最大的差別,就是你可以在程式碼裡「標註」每個值的型別。

最常見的用法是在變數上加標註——在變數名稱後面加上冒號 :,再寫上型別名稱:

let name: string = "小明";
let age: number = 25;
let isActive: boolean = true;

: string、: number、: boolean 就是型別標註。

有了這些標註,TypeScript 就會幫你「把關」——如果你不小心把數字塞進一個標註為 string 的變數,它會直接報錯,不用等到程式跑起來才發現問題:

let name: string = "小明";
name = 123; // ❌ 錯誤:Type 'number' is not assignable to type 'string'

這就是型別標註最大的好處:錯誤在寫程式的時候就會被抓出來,而不是等到使用者操作時才爆掉。

型別標註不是只能用在變數上,函式的參數和回傳值也可以標:

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

a: number 和 b: number 是參數的型別標註,最後面的 : number 是回傳值的型別標註。

物件和陣列也能標:

let user: { name: string; age: number } = {
  name: "小明",
  age: 25,
};

let scores: number[] = [90, 85, 100];

這些進階的用法會在後面的文章詳細介紹,這裡只要知道「型別標註可以用在很多地方」就好。

現在你知道怎麼標註型別了,接下來就來認識 TypeScript 裡最基本的七種原始型別。

最常用的三種原始型別:number、string、boolean

這三種是寫 TypeScript 時最常碰到的型別,幾乎每個程式都會用到。

number:所有數字都歸它管

不管是整數、小數、正數還是負數,TypeScript 都用 number 這一個型別來處理。

let age: number = 12;
let price: number = 49.99;
let temperature: number = -5;

不像某些程式語言會把整數和浮點數分開,TypeScript 的 number 全部包辦。

只要是數字,用 number 就對了。

string:處理文字的型別

string 用來存放文字資料,可以是一個字、一句話、甚至只有一個字母。

只要內容放在引號裡面,就是 string。

let firstName: string = "Alice";
let message: string = "Welcome to TypeScript";

雙引號 " " 和單引號 ' ' 都可以用,效果一樣。

boolean:只有 true 和 false 兩種值

boolean 是最單純的型別,只能是 true(是)或 false(否)。

let isLoggedIn: boolean = true;
let hasPermission: boolean = false;

通常用在「判斷某件事有沒有成立」的情境,例如使用者有沒有登入、有沒有權限。

表示「沒有值」的型別:null 和 undefined

這兩種型別都代表「沒有值」,但背後的意思完全不同。

用一個生活中的例子來說明:想像你在填一份表單,上面有一欄「中間名」。

如果你沒有中間名,你會在那一欄寫上「無」——這就是 null,你做了決定,讓它是空的。

但如果你直接跳過這一欄沒填,它就會維持原本的空白狀態——這就是 undefined,根本還沒有人動過它。

null:「我看過了,決定讓它是空的」

null 是你主動寫進去的值,代表你已經處理過這個變數,而你的決定就是「讓它為空」。

let middleName: null = null;

常見的使用情境:使用者登出後,你把原本存著使用者資料的變數設成 null,代表「資料已經被清除了」。

undefined:「還沒有人動過它」

嚴格來說,undefined 本身就是一個值——只是它代表的意思是「這個變數還沒被賦予有意義的內容」。

它是 TypeScript 的「預設佔位符」:只要你宣告了變數卻沒有用等號賦值,它的值就會自動是 undefined。

let score: undefined = undefined;

重點在於:null 是你「做了決定」後的結果,undefined 是「還沒做任何決定」的狀態。

延伸閱讀:JavaScript 的 null 和 undefined 是什麼?兩種空值的差異

特殊原始型別:symbol 和 bigint

這兩種型別在日常開發中比較少見,但它們確實屬於原始型別,認識一下即可。

symbol:保證唯一的識別值

symbol 是一種特殊型別,每次建立出來的值都是獨一無二的。

就算兩個 symbol 用了一樣的描述文字,它們還是不同的值。

let id = Symbol("userID");

symbol 常見的用途是在物件(Object)裡面建立不會跟其他 key 重複的屬性名稱。

對初學者來說,知道「它保證唯一」這件事就夠了,實務上比較進階才會用到。

bigint:處理超大數字

一般的 number 能處理的數字有上限,超過這個範圍就會出現精確度問題。

bigint 就是為了解決這個問題而存在的,它可以處理非常大的整數。

寫法是在數字後面加上一個 n。

let bigNumber: bigint = 3456789n;

在金融計算或科學運算等需要超高精確度的場景,bigint 就派得上用場。

TypeScript 原始型別重點整理

這七種型別之所以叫做「原始型別」,是因為它們都是最基本、最單純的單一值。

它們是幾乎所有 TypeScript 程式的基礎。

快速複習:

  • number:所有數字(整數、小數、正負數)
  • string:文字內容
  • boolean:true 或 false
  • null:故意設為空值
  • undefined:宣告了但還沒給值
  • symbol:保證唯一的特殊值
  • bigint:超大整數

掌握這些原始型別,就等於打好了 TypeScript 的地基,後續學習物件型別、介面(Interface)、泛型(Generics)都會更順利。

目前還沒有留言,成為第一個留言的人吧!

發表留言

留言將在審核後顯示。

基礎概念

目錄

  • 型別標註(Type Annotation):告訴 TypeScript「這是什麼型別」
  • 最常用的三種原始型別:number、string、boolean
  • number:所有數字都歸它管
  • string:處理文字的型別
  • boolean:只有 true 和 false 兩種值
  • 表示「沒有值」的型別:null 和 undefined
  • null:「我看過了,決定讓它是空的」
  • undefined:「還沒有人動過它」
  • 特殊原始型別:symbol 和 bigint
  • symbol:保證唯一的識別值
  • bigint:處理超大數字
  • TypeScript 原始型別重點整理