基础类型
基础类型:Boolean、Number、String、null、undefined 以及ES6的Symbol和ES10的BigInt
字符串类型
字符串是使用string定义的
const hello: string = 'hello'
const str: string = `${hello} world`
数字类型
支持十六进制、十进制、八进制和二进制
const notANumber: number = NaN // Nan
const num: number = 1 // 普通数字
const infinityNumber: number = Infinity //无穷大
const decimal: number = 10 // 十进制
const hex: number = 0x0010 // 十六进制
const binary: number = 0b0010 // 二进制
const octal: number = 0o0010 // 八进制
布尔类型
const b: boolean = new Boolean(1) // error 这样会报错 应为事实上 new Boolean() 返回的是一个 Boolean 对象
const b: Boolean = new Boolean(1)
注意,使用构造函数 Boolean 创造的对象不是布尔值
const b: boolean = true
const b2: boolean = Boolean(1)
空值类型
function voidFn(): void {
console.log('hello world')
}
void 类型的用法,主要是用在我们不希望调用者关心函数返回值的情况下,比如通常的异步回调函数
void也可以定义undefined 和 null类型
const u: void = undefined
const n: void = null
Null和undefined类型
const u: undefined = undefined
const n: null = null
- void 和 undefined 和 null 最大的区别
与 void 的区别是,undefined 和 null 是所有类型的子类型。也就是说 undefined 类型的变量,可以赋值给 string 类型的变量:
let t: void = undefined
let s: string = 'str'
// 这样写会报错 void类型不可以分给其他类型
s = t
// 这样是没问题的
let t: null = null
let s: string = 'str'
s = t
// 或者
let t: undefined = undefined
let s: string = 'str'
s = t
- 如果你配置了tsconfig.json 开启了严格模式
{
"compilerOptions":{
"strict": true
}
}
null 不能 赋予 void 类型