叨叨游戏网
您的当前位置:首页TypeScript 极速梳理

TypeScript 极速梳理

来源:叨叨游戏网

1. 类型声明

let a: string //变量a只能存储字符串
let b: number //变量a只能存储数值
let c: boolean //变量a只能存储布尔值
a = 'hello'
a = 100 //警告:不能将类型“number”分配给类型“string”
b = 666
b = '你好'//警告:不能将类型“string”分配给类型“number”
c = true
c = 666 //警告:不能将类型“number”分配给类型“boolean”
// 参数x必须是数字,参数y也必须是数字,函数返回值也必须是数字
function demo(x:number,y:number):number{
 return x + y
}
demo(100,200)
demo(100,'200') //警告:类型“string”的参数不能赋给类型“number”的参数
demo(100,200,300) //警告:应有 2 个参数,但获得 3 个
demo(100) //警告:应有 2 个参数,但获得 1 个

2. 类型推断

如果变量的声明和赋值是同时进行的,TS可以自动对变量进行类型检测

let d = -99 //TypeScript会推断出变量d的类型是数字
d = false //警告:不能将类型“boolean”分配给类型“number”

3. 类型总览

JavaScript 中的数据类型:

string 、 number 、 boolean 、 null 、 undefined 、 bigint 、 symbol 、 object

备注:其中 object 包含: Array 、 Function 、 Date ......

TypeScript 中的数据类型:

1. 以上所有

2. 四个新类型: void 、 never 、 unknown 、 any 、 enum 、 tuple

3. ⾃定义类型: type 、 interface

注意点: JS 中的这三个构造函数: Number 、 String 、 Boolean ,他们只⽤于包装对象,正 常开发时,很少去使⽤他们,在 TS 中也是同理。

let n = 56
n.toFixed(2)
/*
当执⾏n.toFixed(2) ,底层做了这⼏件事:
 1.let temp = new Number(42)
 2.value = temp.toFixed(2)
 3.删除value
 4.返回value
*/

4.类型总览

4. 常⽤类型

4.1. 字⾯量

let a: '你好' //a的值只能为字符串“你好”
let b: 100 //b的值只能为数字100
a = '欢迎'//警告:不能将类型“"欢迎"”分配给类型“"你好"”
b = 200 //警告:不能将类型“200”分配给类型“100”
let gender: '男'|'⼥' //定义⼀个gender变量,值只能为字符串“男”或“⼥”
gender = '男'
gender = '未知' //不能将类型“"未知"”分配给类型“"男" | "⼥"”

4.2. any

any 的含义是:任意类型,⼀旦将变量类型为 any ,那就意味着放弃了对该变量的类型检查。

//明确的表示a的类型是any —— 显式的any
let a: any
//以下对a的赋值,均⽆警告
a = 100
a = '你好'
a = false
//没有明确的表示b的类型是any,但TS主动推断了出来 —— 隐式的any
let b
//以下对b的赋值,均⽆警告
b = 100
b = '你好'
b = false

注意点: any 类型的变量,可以赋值给任意类型的变量

/* 注意点:any类型的变量,可以赋值给任意类型的变量 */
let a
let x: string
x = a // ⽆警告

4.3. unknown

unknown 的含义是:未知类型。

备注1: unknown 可以理解为⼀个类型安全的 any

因篇幅问题不能全部显示,请点此查看更多更全内容