typescript学习day2,TS中类型声明(typescript)

 

接着上个文章,上个文章讲了number,string,boolean

1.字面量类型

1.1. 可以直接使用字面量进行类型声明

let a: 10;  // 就是代表a的值就是10
a = 10;
a = 20; // error

1.2.可以使用  | 来连接多个类型,这个是的意思(联合类型)

let b = "boy" | "girl" // 就代表b的值就为boy或girl
b = "boy" 
b = "girl"
b = "zzz" // error

也可以直接指定类型

let c: "boolean" | "string"
c = true;
c = "zzz"
就代表只要c为布尔型或者字符串型就不会报错

2. any类型

any 表示的是任意类型,一个变量设置为any后,相当于对该变量关闭了TS的类型检测

这样就跟js一样了,都不会进行类型检测,所以开发中一般不使用

any 表示的是任意类型,一个变量设置为any后,相当于对该变量关闭了TS的类型检测
let d: any;
d = 10;
d = 'hello';
d = true;

上面的代码都不报错,可以是任意类型的

还有需要注意的是,下面的也是any,是隐式any,要避免
let d; // 就等于 let d: any;

上面的隐式any要注意

3.unkonwn

表示未知类型的值,可以说是安全类型的any

let d: any;
let s = string;
s = d; // 不会报错, d的类型是any,它可以赋值给任意变量

上面的 s = d 不报错,因此这种写法不推荐。所以就出现了unkonwn类型,这种类型就会报错。

let e: unknown;
e = 10;

let s:string;

s = e; // error,提示e的类型为unknown,s的类型为string,所以报错

类型断言,可以用来告诉解析器变量的实际类型

let s: string;
let e: unknown;

// 下面的两种方法都可以进行类型断言

s = e as string;
s = <string>e;

// 就是提示e为string类型,并且不再报错

 4.void和never

void用来表示空,以函数为例,就表示没有返回值的函数,下面代码演示

function fn(): void{
    return 123;  //error,这里返回了值,所以报错
}

function fn(): void{
    return;  // 这样不报错
}

function fn(): void{
    return null;  //null也不会报错
}

function fn(): void{
    return undefined;  // undefined也不会报错
}

但是never和void不一样,表示永远不会返回值,上面void的那几种情况把类型改为never都会报错,就是要不能返回任何东西,空的也不行

function fn(): never {
    throw new Error('出错了!') 
}

// 只有这种情况可以使用never

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值