简介

TypeScriptJavaScript的超集,所有JS的基础类型TS也都包含在里面

基础类型包括 NumberStringBooleannullundefined 以及ES6的 Symbol 和 ES10的 BigInt

安装

安装依赖,并初始化

1
2
npm install typescript -g
tsc --init

基础类型

  • Number(数值类型)
    数值类型用 number 定义,支持十六进制,十进制,八进制和二进制
1
2
3
4
5
6
7
let noNum: number = NaN; // NaN也是数值类型的一类值,表示未定义或者不可表示的值
let num: number = 147; // 普通数字
let infinityNum: number = Infinity; // 无穷大
let decimal: number = 8; // 十进制
let hex: number = 0xf00d; // 十六进制
let binary: number = 0b1010; // 二进制
let octal: number = 0o744; // 八进制
  • String(字符串类型)
    字符串类型用 string 定义,支持模板字符串
1
2
let name: string = 'antVae' // 普通声明
let hobby: string = `${name}喜欢爬山` // 模板字符串声明
  • Boolean(布尔类型)
    布尔类型用 boolean 定义,使用构造函数Boolean创建的对象不是布尔值
1
2
3
4
let createBoolean: boolean = new Boolean(1) // 会报错,返回一个Boolean对象
let createBoolean: Boolean = new Boolean(1) // 正确, Boolean是js内置的一个对象,ts中已经定义好了,可以直接当类型定义
let booleand: boolean = true // 可以直接使用布尔值
let booleand: boolean = Boolean(1) // 也可以通过函数返回布尔值
  • Void(空值类型)

空值类型用 void 定义,在JavaScript中没有void的概念,在TypeScript中可以用 void 表示没有任何返回值的函数。void 类型的用法,主要用在我们不希望调用者关心函数返回值的情况下,比如通常的异步回调函数

1
2
3
function voidFn(): void {
console.log('void test');
}

void 也可以定义 undefinednull 类型

1
2
let u: void = undefined;
let n: void = null;
  • nullundefined 类型

    1
    2
    let u: undefined = undefined; // 定义undefined
    let n: null = null; // 定义null
  • void、undefined、null 的区别
    undefinednull 是所有类型的子类型,也就是说 undefined 类型的变量可以赋值给 string 类型的变量

1
2
3
4
5
6
7
8
9
10
11
12
13
14
let test: undefined = undefined;
let str: string = 'vae'

str = test // 这样写不会报错

let test: null = null;
let str: string = 'vae'

str = test // 这样写不会报错

let test: void = null;
let str: string = 'vae'

str = test // 这样写会报错, void类型不可以分给其他类型
  • Tips 注意
    如果你配置了tsconfig.json开启了严格模式, null 类型不能赋值给 void 类型,但undefined 类型可以
1
2
3
4
5
{
"compilerOptions": {
"strict": true
}
}
1
2
let n: void = null; // 会报错
let u: void = undefined; // 不会报错