学习TypeScrip1---基础类型

83 阅读2分钟

TS是JS的超集,所以JS基础的类型都包含在内

起步安装 npm install typescript -g

运行tsc 文件名

基础类型:Boolean,Number,String,null,undefined以及ES6的Symbol和ES10的BigInt

1.字符串类型

字符串是使用string定义的

let a:string = '123'

let str: string = `ddd${a}`

其中 ` 用来定义ES6中的模板字符串,${}用来在模板字符串中嵌入表达式。

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;//八进制s

3.布尔类型

注意,使用构造函数 Boolean 创造的对象不是布尔值:

let createdBoolean: boolean = new Boolean(1)
//这样会报错 应为事实上 new Boolean() 返回的是一个 Boolean 对象

事实上 new Boolean() 返回的是一个 Boolean 对象 需要改成

let booleand: boolean = true //可以直接使用布尔值
let booleand2: boolean = Boolean(1) //也可以通过函数返回布尔值

4.空值类型

JavaScript 没有空值(Void)的概念,在TypeScript中可以用void表示没有任何返回值的函数

function voidFn(): void {
    console.log('xxxx')
}

void 类型的用法,主要是用在我们不希望调用者关心函数返回值的情况下,比如通常的异步回调函数

void也可以定义undefined 和 null类型

let u: void = undefined
let n: void = null

5.Null和undefined类型

let u: undefined = undefined
let n: null = null

void 和 undefined 和 null 最大的区别

与void区别是,undefined和null是所有类型的子类型。也就是说undefined类型的变量,可以赋值给string类型的变量:

//这样写会报错 void类型不可以分给其他类型
let test: void = undefined 
let num2: string = "1"
num2 = test
//这样写没事
let test: null = null 
let num2: string = "1"
num2 = test

let test1: undefined = undefined 
let num3: string = "1"
num3 = test1

Tips:

如果你配置了tsconfig.json 开启了严格模式

{
    "compilerOptions": {
        "strict": true
    }
}

null 不能 赋予 void 类型