当前位置:首页 » 《随便一记》 » 正文

TypeScript基本类型的了解_Debug的博客

7 人参与  2021年12月22日 16:32  分类 : 《随便一记》  评论

点击全文阅读


数据类型:

number,string,boolean跟js类同

字面量

它就是值本身及值本身的类型

let a: 10
a = 10;
a = 125;
a = "123";

any表示任何类型,可以任意赋值

一个变量赋值为any后相当于对该变量关闭了ts的类型检测
在使用ts时候不到万不得已则不建议使用any

let c: any
c = 2
c = true
c = "2"
// 声明一个变量如果不给他赋值则相当于隐式的给当前变量赋值成了any
let d;
d = 2
d = "2"
d = true

unknown表示未知的类型

let e:unknown
let s : string
// e = 10
// e = "10"
// e = true
// e = d
// s = e
// unknown实际上就是一个类型安全的any
// unknown类型的变量不能直接赋值给其他的变量
// 1. 可以通过对e变量类型的判断进行赋值
e = 'hello';
if(typeof e === "string"){
    s = e
}
 2. 或者使用类型断言
// 告诉编译器e就是字符类型可以被s使用
s = e as string
// 当遇到一个类型不确定的变量时能不用any就不用any,推荐使用unkonwn       

当把一个any类型的变量赋值给unknown之后也会变成any任意类型

但是unknown类型的变量直接赋值给别的变量则报错不会影响到其他的变量

void代表函数没有返回值

function fn1():void{
    //return null|undefined//不报错
    // return 1323等类型则报错
}

never永远不会有返回值,没有任何返回值

使用场景:用于异常抛出,返回报错

// function err():never{
//     throw new Error("报错了!");
// }
// void和never的区别是:
// void有null或者undefined作为返回值
// never是没有任何返回值

object表示一个js对象

一般不常用,因为js中一切皆为对象所以,object这个类型太广泛不好限制

let a :object
a = {}
a = function (){}

{}用来指定对象中可以包含哪些属性

// age?:number属性名后加问号表示属性是可选的,有也可以没有也可以
let b: {name:string,age?:number}
b = {name:"孙悟空",age:22}

[propName:string]: any表示任意类型的属性

// [propName:string]: string表示任意类型的字符串属性
let c: {name:string,[propName:string]: string}
c = {name:"猪八戒",sex:"555",job:"4656"}

Array

array的类型声明方式:类型:[],Array<类型>

// string[]表示字符串数组
let d: string[]
d =["1323","住宿等我","dwad"]
// number[]表示数字数组
let f: number[]
f = [1,2,3,6,54]
// 可以指定未知的类型或者多个类型Array<unknown>/any
let g: Array<unknown>
g = ["wewe",122,true]

Tuple元组就是固定长度的数组

// 语法:[类型,类型,类型]
let h: [string,string]
h = ["www",'www']

enum枚举

enum Gender{
    boy=1,
    girl=0
}
let i:{name:string,gender:Gender}
i = {
    name:"小明",
    gender:Gender.boy
}
console.log(i.gender===Gender.boy)

// 类型的别名
type myType = 1|2|3|4|5 

let k: myType
let l: myType
let m: myType
k = 5//有则不报错
// k = 6类型中无6则报错

| &运算符

|可以用来连接多个类型{联合类型}

let b:number|boolean
b = 2
b = true

&表示并且的意思

表示名字必须是字符串年龄必须是数字类型

// let a: {name: string},{age:number}

函数

ts中可以根据函数内返回值的类型来判断函数的类型是什么

例子:光标移动到函数名上发现,此时的函数类型是boolean|number类型

// num的类型由于未指定所以是any
function fn(num){
    if(num>0){
        return true
    }else{
        return 123
    }
}

点击全文阅读


本文链接:http://zhangshiyu.com/post/31956.html

类型  变量  赋值  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1