目录

TypeScript基础类型一览表

基础类型分析

number——精确计算的守护者

string——语言与逻辑的桥梁

boolean——真与假的哲学

null与undefined——缺席也有意义

array——数据的有序集合

tuple——精准表达的数据结构

any——自由的代价

unknown——不确定中的安全

void——无需返回的沉默者

never——永不返回的尽头

object与symbol——更抽象的存在

总结:让类型成为信任的语言


 

        在JavaScript的世界里,我们常常沉浸于灵活的快感之中。变量随心所欲、类型自由切换、函数能返回任何东西。可当项目变大,Bug就像春天的野草,一夜之间漫山遍野。

        TypeScript的出现,不是为了限制自由,而是为了让自由更有方向。
        它让你在编写代码时,获得一种久违的安全感——那种“我知道这段代码不会轻易出错”的安心。

TypeScript基础类型一览表

        在 TypeScript中,最常用的基础类型如下:

类型名类型名称类型内容
number数值类型整数、浮点数、二进制、八进制、十六进制
string字符串类型文本的载体,可使用模板字符串
boolean布尔类型表示真或假
null空类型表示“有意的空值”
undefined未定义类型表示“尚未定义”
array同类型元素的集合
tuple固定长度、不同类型的集合
any任意类型关闭类型检查
unknown不确定的类型安全,但需要显式检查后使用
void无返回值类型一般用于函数
never永不返回类型用于抛出错误等情况
object对象类型非原始类型
symbol唯一标识符类型

独一无二

基础类型分析

number——精确计算的守护者

        number类型代表所有数值,包括整数和浮点数:

let age: number = 25
let price: number = 99.9
let hex: number = 0xff
let binary: number = 0b1010

        在JavaScript中,数字运算常常因为浮点误差让人头疼,比如0.1 + 0.2 !== 0.3。
        TypeScript并没有消灭这种误差,但它能确保变量之间的类型一致,防止你在不经意间用字符串去参与运算。

特点特点分析
统一性强整数与小数无区别,统归number。
类型安全避免将字符串或布尔值错误地参与数值计算。
清晰明了声明即表示“这里一定是数字”,可读性高。

string——语言与逻辑的桥梁

        string类型表示文本,是人与程序沟通的载体。

let name: string = "Alice"
let greeting: string = `Hello, ${name}!`

        模板字符串让表达更自然,不再需要烦人的加号拼接。
        TypeScript通过类型约束,让你在数据展示中更加安心——字符串就是字符串,不会变成数字或对象。

特点特点分析
可读性强模板字符串让逻辑与表达自然融合。
类型明确避免数值或对象误入文本逻辑。
常用于接口返回与显示层数据

boolean——真与假的哲学

        boolean类型是逻辑的基石,只有两种取值:true与false。

let isLogin: boolean = true
let isOver: boolean = false

        布尔类型虽简单,却常常决定系统的生死。
        一个错误的判断条件,可能导致整个流程错误执行。
        而TypeScript会在编译阶段提醒你:“这个值可能是undefined,你确定要用吗?”

特点特点分析
逻辑清晰表达状态、条件、流程的必需类型。
安全性高编译阶段防止错误逻辑判断。
语义明确见名知意,适合状态管理。

null与undefined——缺席也有意义

        在JavaScript中,null与undefined一直是令人头疼的一对双胞胎。

        在TypeScript中,它们被赋予了更清晰的边界:

let userName: string | null = null
let score: number | undefined = undefined

        null表示刻意的空值;undefined表示尚未定义或未赋值

        TypeScript允许你在类型中明确声明这种“可能为空”的情况,从而让错误更早暴露。

特点特点分析
区分明确一个是“空”,一个是“未定义”。
类型安全显式声明可空性,避免运行时报错。
友好提示编译器会提醒你未进行空值判断的风险。

array——数据的有序集合

        array 类型用于表示一组相同类型的数据。

let numbers: number[] = [1, 2, 3]
let fruits: Array<string> = ["apple", "banana", "orange"]

        TypeScript不仅让数组更安全,还防止了错误数据的混入。
        再也不用担心你一不小心在数字数组里塞进个字符串。

特点特点分析
元素类型统一保证数组内部数据一致。
两种声明方式T[ ]或Array<T>。
提高可维护性防止数组混乱导致逻辑错误。

tuple——精准表达的数据结构

        tuple(元组)是一种特殊的数组,长度固定、类型各异。

let user: [string, number] = ["Alice", 25]

        每个位置的类型都被严格定义。

        这让它非常适合表达固定结构的数据,比如数据库记录、键值对等。

特点特点分析
结构固定长度与类型都受限制。
语义清晰每个位置代表不同含义。
常用于接口返回、配置项描述等。

any——自由的代价

        any是TypeScript中最宽松的类型。

        它可以赋予任何值,并能参与任何操作:

let value: any = 10
value = "hello"
value = { name: "Alice" }

        虽然any能解决“暂时不知道类型”的问题,但它也关闭了所有类型保护
        就像摘掉安全帽去施工——自由是有代价的。

特点特点分析
完全放开类型检查
适合逐步迁移老项目
应谨慎使用,否则失去TypeScript的意义。

    unknown——不确定中的安全

            与any相比,unknown是更安全的不确定类型。

    let maybe: unknown = 10
    if (typeof maybe === "number") {
      console.log(maybe + 1)
    }
    

            它告诉编译器:“我暂时不知道这个值是什么,但在使用前我会检查。”
            这种谨慎,是TypeScript鼓励的编程习惯。

    特点特点分析
    比any更安全
    需要类型判断后才能使用。
    用于接收不确定的外部数据。

      void——无需返回的沉默者

              void类型通常用于函数无返回值的场景。

      function logMessage(message: string): void {
        console.log(message)
      }
      

              它代表一种“只做事不回值”的态度。
              在TypeScript世界里,即使什么都不返回,也要让类型系统知道——这是“有意为之”。

      特点特点分析
      专属函数返回类型
      强调无返回值而非未定义。
      保持代码语义一致性。

        never——永不返回的尽头

                never类型代表程序永远不会有返回值。
                它通常用于抛出错误或死循环:

        function fail(message: string): never {
          throw new Error(message)
        }
        

                never是逻辑的终点:当程序无法继续执行时,它是最纯粹的表达。

        特点特点分析
        表示不可达的终止状态。
        用于异常或无限循环。
        编译器可用它推断逻辑完备性。

          object与symbol——更抽象的存在

                  object类型表示非原始类型的值。

          let person: object = { name: "Alice", age: 25 }
          

                  虽然object可用来声明普通对象,但在实际开发中,更推荐明确声明结构类型,这样代码更可读、更安全。

                  symbol则是一种独一无二的标识符:

          const key1 = Symbol("id")
          const key2 = Symbol("id")
          console.log(key1 === key2) // false
          

          每个symbol都是唯一的。
          在大型系统中,它常被用作防止属性名冲突的“隐藏钥匙”。

          类型特点分析
          object泛化的对象类型,结构不受限。
          symbol唯一且不可变的标识符。

          总结:让类型成为信任的语言

                  当我们学习 TypeScript 的基础类型时,我们不仅是在理解一门语言的规则,更是在学习一种思考方式——清晰、谨慎、可预期。

                  类型不是束缚,而是安全的边界;
                  约束不是限制,而是信任的基础。

                  当你在代码中写下:

          let userName: string
          

                  那一刻,你不仅声明了变量,也在向未来的自己保证:

                  “我知道这是什么,也知道它不会随意改变。”

                  这,正是TypeScript的温度所在。
                  它让每一个程序员,在自由与秩序之间,找到最踏实的那一份平衡。

          Logo

          Agent 垂直技术社区,欢迎活跃、内容共建。

          更多推荐