JavaScript 的类型分为两种:原始数据类型(Primitive data types)和对象类型(Object types)。
原始数据类型包括:字符串、数值、布尔值、null
、undefined
以及 ES6 中的新类型 Symbol
和 ES10 中的新类型 BigInt
。
本节主要介绍前五种原始数据类型在 TypeScript 中的应用。
原始数据类型
String、Number、Boolean、null、undefined 以及 ES6 的 Symbol 和 ES10 的 BigInt。
1. 字符串类型
// 普通声明
let name: string = '名字'
// 可以使用es6的模板字符串
let my:string = `我的${name}`
2. 数字类型
let notANumber:number = NaN // NaN
let num:number = 123 // 普通数字类型
let infinityumber: number = Infinity // 无穷大数字
let binary:number = 0b1010 // 二进制
let octal:number = 0o744 // 八进制
let decimal:number = 10 // 十进制
let hexadic:number = 0xf00d // 十六进制
3.布尔类型
使用 new Boolean() 创造的对象不是布尔值
// 会报错 new Boolean() 返回的是一个 Boolean 对象
let newBoolean:boolean = new Boolean(1)
// 修改为 Boolean 对象
let newBoolean:Boolean= new Boolean(1)
// 正常使用
let boolean:boolean = true
let boolean2:boolean = Boolean(1)
4.Null和undefined类型
// 定义null
let n:null = null
// 定义undefined
let u:undefined = undefined
5.Void类型
表示没有任何类型。 当一个函数没有返回值时,你通常会见到其返回值类型是
void
function warnUser(): void {
console.log("This is my warning message");
}
声明一个void类型的变量没有什么大用,因为你只能为它赋予
undefined
和null
let unusable: void = undefined;
let unusable: void = null;
与 void 的区别是,
undefined 和 null 是所有类型的子类型
。也就是说 undefined 类型的变量,可以赋值给 string 类型的变量
//这样写会报错 void类型不可以赋值给其他类型
let test:void = undefined
let num:number = 2
num = test
// 这样写没问题
let test:undefined= undefined
let num:number = 2
num = test
// 或者这样写
let test:null= null
let num:number = 2
num = test
而 void 类型的变量不能赋值给 number 类型的变量:
let u: void;
let num: number = u;
// Type 'void' is not assignable to type 'number'.
TIPS:注意
如果你配置了tsconfig.json 开启了严格模式
{
"compilerOptions":{
"strict": true
}
}