TypeScript基础3

文章介绍了TypeScript的自动类型判断机制,包括类型推论和类型别名的概念。类型推论允许在未明确指定类型时根据赋值推断变量类型,而类型别名则提供了为复杂类型重命名的手段。联合类型(UnionType)则允许变量可以是多个类型之一,但在访问属性或方法时需遵守共有的属性或方法。文章还通过示例说明了联合类型在赋值后的类型推断和使用限制。
摘要由CSDN通过智能技术生成

自动类型判断

        TS拥有自动的类型判断机制

        当对变量的声明和赋值是同时进行的,TS编译器会自动判断变量的类型,所以如果你的变量的声明和赋值时同时进行的,可以省略掉类型声明。

类型推论

        如果没有明确的指定类型,那么 TypeScript 会依照类型推论( Type Inference )的规则推断出一个类型。
let x = 'doudou';
x = 22;   //类型推断为x为string,赋值22(number类型)时会报错。
        如果定义的时候没有赋值,不管之后有没有赋值,都会被推断成 any 类型。
let x;
x = 'doudou';
x = 22;

类型别名

        类型别名用来给一个类型起个新名字,使用 type 创建类型别名,类型别名常用于联合类型。在实际应用中,有些类型名字比较长或者难以记忆,重新命名是一个较好的解决方案。

// 创建一个string别名
type newType = string | number;
// 使用别名
let x : newType = "doudou";
// 或
let x : newType = 22;

联合类型-Union Type

        联合类型表示的值可能是多种不同类型当中的某一个。 联合类型放宽了类型的取值的范围,也就是说值的范围不再限于某个单一的数据类型。同时,它也不是无限制地放宽取值的范围,如果那样的话,完全可以使用 any 代替。

        联合类型使用 | 分隔每个类型。
// 给多个类型创建一个名字
type newType = string | number;
// 可以在赋值的时候赋值字符串与数字
let x : newType = "doudou"
let x : newType = 22

// 或
let x : string | number;
x = 'doudou';
x = 22;

访问联合类型的属性或方法

        当 TypeScript 不确定一个联合类型的变量到底是哪个类型的时候,我们 只能访问此联合类型的所有类型 里共有的属性或方法。
function fun(x : string | number): number {
   return x.length;        //报错,number没有length属性,联合类型只能访问共有的属性和方法。
}

function fun(x : string | number): string {
   return x.toString();   //toString为string、number共有的方法
}
        联合类型的变量在被赋值的时候,会根据类型推论的规则推断出一个类型。
let x : string | number;
x = 'doudou';
console.log(x.length); // 6
x = 22;
console.log(x.length); // 报错

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值