TypeScript 基础指南:基元类型

基元类型是编程语言中的一类数据类型,它们表示最基本的、不可再分的数据单位。它们是原子值,这意味着它们不能被分解成更小的部分。

部分
1
布尔型 (boolean)

布尔型 (boolean) 是 TypeScript 中的一种基元类型,表示真或假的值。 布尔值通常用于表示条件或状态。例如:

用户是否已登录?
产品是否已售罄?
函数是否成功执行?
使用场景:
条件语句(例如 if、while 和 for 语句)
逻辑运算(例如 &&、|| 和 !)
作为函数的返回值
优点:
清晰性
布尔值清楚地表示真或假的值。
一致性
布尔值在许多编程语言中都被用作真假值的表示。
缺点:
有限性
布尔值只能表示真或假的值,不能表示其他值。
代码示例:
// 检查用户是否已登录
let isLoggedIn: boolean = true;

// 检查产品是否已售罄
let isSoldOut: boolean = false;

// 检查函数是否成功执行
function myFunction(): boolean {
  // ...
  return true;
}
注意:

布尔值在 TypeScript 中可以显式地设置为 true 或 false,也可以使用布尔运算符(例如 !、&& 和 ||)来创建布尔值。

部分
2
数字型 (number)

数字型 (number) 是 TypeScript 中的一种基元类型,表示数值,包括整数和小数。 数字值通常用于表示数量、度量或货币值。例如:

用户的年龄
产品的价格
数学计算的结果
使用场景:
算术运算(例如加、减、乘和除)
比较运算(例如大于、小于和等于)
作为函数的参数或返回值
优点:
通用性
数字值可以表示广泛的数值。
精度
数字值可以表示非常精确的值,包括小数。
缺点
有限性
数字值不能表示非数值,例如字符串或布尔值。
代码示例:
// 用户的年龄
let age: number = 30;

// 产品的价格
let price: number = 19.99;

// 数学计算的结果
let result: number = 10 + 20;
注意:

数字值在 TypeScript 中可以是整数或小数。整数是没有小数部分的数字,而小数是有小数部分的数字。

部分
3
字符串型 (string)

字符串型 (string) 是 TypeScript 中的一种基元类型,表示字符序列。 字符串值通常用于表示文本、名称或其他序列数据。例如:

用户的姓名
产品的描述
HTML 代码
使用场景:
字符串操作(例如连接、分割和搜索)
作为函数的参数或返回值
表示文本或其他字符数据
优点:
通用性
字符串值可以表示广泛的字符序列。
可读性
字符串值很容易阅读和理解。
缺点:
不可变性
字符串值一旦创建就不能被修改。
代码示例:
// 用户的姓名
let name: string = "John Doe";

// 产品的描述
let description: string = "This is a product description.";

// HTML 代码
let html: string = "<p>This is a paragraph.</p>";
注意:

字符串值在 TypeScript 中可以使用单引号 (') 或双引号 (") 括起来。

部分
4
空值型 (null)

空值型 (null) 是 TypeScript 中的一种基元类型,表示一个故意没有值的变量。 与 undefined 值不同,null 值表示一个变量的值显式地设置为 null。例如:

let myVariable: null = null;
使用场景:
表示一个可选字段或属性尚未设置。
作为函数的返回值,表示函数没有返回值。
表示一个数据库中的空值。
优点:
清晰性
null 值清楚地表示变量的值显式地设置为 null。
一致性
null 值在许多编程语言中都被用作空值的表示。
缺点:
容易出错
忘记检查 null 值可能会导致意外的行为。
难以调试
在大型代码库中,跟踪 null 值可能很困难。
代码示例:
// 表示一个可选字段尚未设置
interface Person {
  name: string;
  age?: number | null; // 可选字段
}

// 使用 null 作为默认值
function myFunction(param: string | null = null) {
  // ...
}

// 返回 null
function myFunction(): null {
  return null;
}
注意:

null 值与 undefined 值不同。undefined 值表示一个变量尚未初始化或赋值,而 null 值表示一个变量的值显式地设置为 null。

部分
5
未定义型 (undefined)

未定义型 (undefined) 是 JavaScript 中的一种基元类型,表示一个变量尚未初始化或尚未赋值。 当一个变量被声明但没有赋值时,它的值将自动设置为 undefined。例如:

let myVariable;

console.log(myVariable); // undefined

undefined 值也可能显式地分配给变量:

let myVariable = undefined;
使用场景:
检查变量是否已初始化或赋值。
表示一个可选参数或函数参数的默认值。
作为函数的返回值,表示函数没有返回值。
优点:
清晰性
undefined 值清楚地表示变量尚未初始化或赋值。
一致性
undefined 值在 JavaScript 中被广泛用作未初始化变量的默认值。
缺点:
容易出错
忘记初始化变量或将变量赋值为 undefined 可能会导致意外的行为。
难以调试
在大型代码库中,跟踪 undefined 值可能很困难。
代码示例:
// 检查变量是否已初始化
if (myVariable === undefined) {
  // 变量尚未初始化
}

// 使用 undefined 作为默认值
function myFunction(param = undefined) {
  // ...
}

// 返回 undefined
function myFunction() {
  return undefined;
}
注意:

undefined 值与 null 值不同。null 值表示一个故意没有值的变量,而 undefined 值表示一个尚未初始化或赋值的变量。

部分
6
符号型 (symbol)(ES6)

符号型 (symbol) 是 ES6 中引入的一种新的基元类型。它表示一个唯一且不可变的值,可以用作标识符。 与其他基元类型不同,符号类型的值不是直接存储在变量中的。相反,符号类型的值存储在一个称为符号注册表的全局注册表中。当创建一个新的符号类型值时,它将被添加到符号注册表中,并返回一个对该值的引用。 符号类型值通常用于表示对象的私有属性或方法。这是因为符号类型值是唯一的,并且不能被其他对象访问或修改。

使用场景:
表示对象的私有属性或方法。
作为哈希表中的键。
作为对象的属性名的替代方案。
代码示例:
const uniqueSymbol = Symbol();

class MyClass {
  private [uniqueSymbol] = 123;

  public getSecret() {
    return this[uniqueSymbol];
  }
}

const myObject = new MyClass();
console.log(myObject.getSecret()); // 123

在此示例中,uniqueSymbol 是一个符号类型值,它被用作 MyClass 类的私有属性。这意味着 uniqueSymbol 属性只能在 MyClass 类内部访问。

优点:
唯一性
符号类型值是唯一的,这意味着它们可以安全地用作标识符。
不可变性
符号类型值是不可变的,这意味着它们一旦创建就不能被修改。
私有性
符号类型值可以被用作对象的私有属性或方法,这意味着它们只能在该对象内部访问。
缺点:
不直观
符号类型值不是直接存储在变量中的,这可能会让调试和理解代码变得更加困难。
不支持旧浏览器
符号类型不受旧浏览器支持,如 Internet Explorer。
部分
7
大整型 (bigint)(ES2020)

大整型 (bigint) 是 ES2020 中引入的一种新的基元类型。它表示一个数值,该数值大于可以用常规数字表示的最大值。 在 JavaScript 中,常规数字使用 64 位有符号整数表示。对于某些应用程序来说,这个范围可能不够大,例如需要处理非常大的整数的加密算法。 大整型使用任意精度的整数表示,这意味着它们可以表示任意大小的整数。大整型值使用后缀 n 来表示,例如:

const bigInt = 9007199254740991n;
使用场景:
处理非常大的整数,例如加密算法中的大素数。
表示超出常规数字范围的值,例如科学计算中的大常数。
作为哈希表中的键,以避免哈希冲突。
优点:
任意精度
大整型可以表示任意大小的整数,这使得它们非常适合处理非常大的数字。
避免溢出
大整型不会溢出,这意味着它们可以安全地用于表示非常大的数字。
更好的哈希
大整型可以作为哈希表中的键,以避免哈希冲突。
缺点:
不直观
大整型值不是直接存储在变量中的,这可能会让调试和理解代码变得更加困难。
不支持旧浏览器
大整型不受旧浏览器支持,如 Internet Explorer。
代码示例:
const bigInt = 9007199254740991n;

console.log(bigInt + 1n); // 9007199254740992n
console.log(bigInt * 2n); // 18014398509481982n
    目录

  • 1.
    布尔型 (boolean)
  • 2.
    数字型 (number)
  • 3.
    字符串型 (string)
  • 4.
    空值型 (null)
  • 5.
    未定义型 (undefined)
  • 6.
    符号型 (symbol)(ES6)
  • 7.
    大整型 (bigint)(ES2020)