Typescript学习7 ( 类型推论 | 类型别名 | never类型 )

目录

一、类型推论

1.Ts会在没有明确的指定类型的时候推测出一个类型,这就是类型推论

2.如果你声明变量没有定义类型也没有赋值,这时候TS会推论成any类型

二、类型别名

type 关键字,可以给一个类型定义一个名字,多用于复合类型

三、never类型

Ts使用 never 类型来表示不应该存在的状态


一、类型推论

1.Ts会在没有明确的指定类型的时候推测出一个类型,这就是类型推论
let str = '小胖' //此时str被推论成string类型
2.如果你声明变量没有定义类型也没有赋值,这时候TS会推论成any类型
let str
str = '小胖'
str = 123
str = true 
//str此时被推论为any类型
二、类型别名
type 关键字,可以给一个类型定义一个名字,多用于复合类型

定义类型别名

type test = string
let str:test ='小胖' //此时test就相当于是string类型

定义函数别名

type fun = () => string
let f:fun = () => '我是小胖'

定义联合类型别名

type str = number | string
let str1: str = 123
let str2: str = '小胖'
console.log(str1, str2); //结果为 123,小胖

定义值的别名

type str = 123 | string 
let str1:str = 123 //此时只能赋值123,不能赋值其他数字类型的
let str2:str = 3 //报错

type 和 interface 的区别

1.interface可以继承,type 只能通过 & 交叉类型合并

2.type 可以定义联合类型并且可以使用一些操作符,而interface不行

3.interface 遇到重名的会合并,而type 不行

三、never类型
Ts使用 never 类型来表示不应该存在的状态

type A = number & string //A不可能是数字类型,又是字符串类型,此时为never类型
type A = number | string | never //此时A只有number和string联合类型,never不存在

function error():never {
    throw new Error('报错')
} //函数必定会抛出异常,所以不会有返回值
function loop():never {
    while (true) {
    }
} //函数陷入死循环,所以不会有返回值

  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值