TypeScript 学习记录--类型

本文是 TypeScript 类型的学习记录,介绍了布尔值、数值、字符串等多种类型。如数组可用泛型表示,元祖能明确元素数量和类型,枚举成员有默认或手动设置的值。还提及 any、void 等特殊类型,以及类型断言的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

TypeScript 学习记录–类型

1. 布尔值 boolean

2. 数值 number

3. 字符串 string

4. 数组

number[] | string[] 表示由 ‘number | string ’ 组成的数组; 数组泛型 Array[number] 也可以表示

5. 元祖 Tuple

表示一个已知元素数量和类型的数组,当访问已知索引时,会得到正确的类型,然后根据类型决定报错

    const a: [number, string] = [12, '12'];
    
    a[1] = true; // 赋值操作不符合类型也会报错
    console.log(a[0] * 20 + 10); // 正确
    console.log(a[1] * 20 + 10); // 报错

6. 枚举 enum

一个枚举类型可以包括 0 个或者多个枚举成员,枚举成员默认具有一个从 0 开始 每个成员递增 1 的数字值,也可以手动设置值

enum Color {Green = 2, Red, XXX}; // 首位赋值为 2 二位开始依次递增 1 
const a: string = Color[3]; // 'Red'

7. any

代表所有类型,如果在编译阶段还没有确定类型,则可以使用 any 来标记

let a: any = 'xxx';
a = true; // 不报错

const b: any[] = ['xxx', true];
b[0] = {name: 'name'}; // 更改成员类型也不报错

8. void

与 any 相反,代表没有任何类型 只能后赋值 undefined

9. null | undefined

null 与 undefined 也是类型, --strictNullChecks 开启严格审查的情况下,null 与 undefined 只能赋值给自身

10. never

代表会抛出异常的函数的返回值

function change(): never {
  throw new Error('xxx')
}

11. object

对象类型,可以付任意的值,但是不允许调用任意的方法

const a: object = {say: function () {}, name: 'a'};
a.say();
a.name // 报错,object 上没有 say 方法

12. 类型断言

类似于以上 object 的情况,如果我知道这个变量的值是更准确的,那么可以用类型断言告诉 ts 这个位置的类型,而不是让 ts 自己去计算

const a: object = {say: function () {}, name: 'a'};
(a as any).say(); // as 在 tsx 中也被允许

let someValue: any = "this is a string";
let strLength: number = (<string>someValue).length; // 非 tsx 环境适用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值