# 原始数据类型
JavaScript 的类型分为两种:原始数据类型(Primitive data types)和对象类型(Object types)。
原始数据类型包括:布尔值、数值、字符串、null、undefined 以及 ES6 中的新类型 Symbol 和 ES10 中的新类型 BigInt
TypeScript 支持与 JavaScript 几乎相同的数据类型,此外还提供了实用的枚举类型方便我们使用。
# 布尔值
布尔值是最基础的数据类型,在 TypeScript 中,使用 boolean 定义布尔值类型:
let loading: boolean = false;
注意
注意,使用构造函数 Boolean 创造的对象是一个Boolean
对象不是布尔值
# 数字
和 JavaScript 一样,TypeScript 里的所有数字都是浮点数。 这些浮点数的类型是 number
。
let decLiteral: number = 6;
let hexLiteral: number = 0xf00d;
// 二进制
let binaryLiteral: number = 0b1010;
// 八进制
let octalLiteral: number = 0o744;
# 字符串
像其它语言里一样,我们使用 string
表示文本数据类型。
let name: string = "bob";
你还可以使用模版字符串,它可以定义多行文本和内嵌表达式
let pname: string = `Gene`;
let age: number = 37;
let sentence: string = `Hello, my name is ${pname}. I'll be ${age + 1} years old next month.`;
console.log(sentence);
// Hello, my name is Gene. I'll be 38 years old next month.
# 空值 (新)
JavaScript 没有空值(Void)的概念,在 TypeScript 中,可以用 void
表示没有任何返回值的函数:
function sayHello(): void {
console.log("hello");
}
声明一个 void 类型的变量没有什么用,因为你只能将它赋值为 undefined 和 null
let unusable: void = undefined;
# null 和 undefined
在 TypeScript 中,null 和 undefined 也得到了保留
let u: undefined = undefined;
let n: null = null;
与 void 的区别是,undefined 和 null 是所有类型的子类型。也就是说 undefined 类型的变量,可以赋值给 number 类型的变量
// 这样不会报错
let num: number = undefined;
而 void 类型的变量不能赋值给 number 类型的变量
let u: void = undefined;
let num: number = u;
// Type 'void' is not assignable to type 'number'.