一. 基础类型
S是JS的超集,所以JS基础的类型都包含在内
起步安装 npm install typescript -g
运行tsc 文件名
基础类型:Boolean、Number、String、null、undefined 以及 ES6 的 Symbol 和 ES10 的 BigInt。
1. 字符串类型
字符串是使用string定义的
// 基本使用
let a:string = '222'
// 也可以使用 es6的字符串模板
let str: string = `wangsihua${
aaa}`
其中 ` 用来定义 ES6 中的模板字符串,${expr} 用来在模板字符串中嵌入表达式。
2. 字符串类型
支持十六进制、十进制、八进制和二进制;
let notANumber: number =NaN; // Nan
let num: number = 123; //普通数字
let infinityNumber: number = Infinity; // 无穷大
let decimal: number = 6; // 十进制
let hex: number = 0xf00d; // 十六进制
let binary: number = 0b1010; // 二进制
let octal: number =0o744; // 八进制
3. 布尔类型
注意,使用构造函数 Boolean 创造的对象不是布尔值:
let createdBoolean: boolean = new Boolean(1) // 错的
new Boolean(1) 返回的是一个 Boolean对象 不是值
事实上 new Boolean() 返回的是一个 Boolean 对象 需要改成
let createdBoolean: Boolean = new Boolean(1)
let booleand: boolean = true //可以直接使用布尔值
let booleand2: boolean = Boolean(1) //也可以通过函数返回布尔值
4. 空值类型 void
JavaScript 没有空值(Void)的概念,在 TypeScript 中,可以用 void 表示没有任何返回值的函数
function voidFn(): void {
console.log('test void')
}
void 类型的用法, 主要是用在我们不希望调用者关心函数返回值的情况下,比如通常的异步回调函数
void 也可以定义 undefined 和 null 类型
let u: void = undefined
let u: void = null
5. Null 和 undefined 类型
let u: undefined = undefined;
let u: null = null
void 和 undefined 和 null 最大的区别
与 void 的区别是,undefined 和 null 是所有类型的子类型。也就是说 undefined 类型的变量,可以赋值给 string 类型的变量:
let test: void = undefined
let num2: string = "1"
num2 = test
// 会报错。 void类型 不可以分给其他类型
let test: undefined = undefined
let num: string = "1"
num = test
let test1: null = null
let num2: string = "2"
num2 = test2
// 这两个写法则没有问题
TIPS 注意:
如果你配置了tsconfig.json 开启了严格模式
{
"compilerOptions":{
"strict": true
}
}
也就是
let n: void = null; // 如果开了严格模式 这里会报错
let u: void = undefined;
console.log(u,u)
null 不能 赋予 void 类型
二. 任意类型
Any 类型 和 unknown 顶级类型
1.没有强制限定哪种类型,随时切换类型都可以 我们可以对 any 进行任何操作,不需要检查类型
let anys: any = 123
anys = '123'
anys = true
anys = undefined
anys = null
2.声明变量的时候没有指定任意类型 默认为 any