【TS】 基础数据类型

TS和 JS一样,将所有的数据类型分为“基本数据类型”和“引用数据类型”。

一、基本数据类型

number 
string
boolean
null
undefined
symbol
bigint

1.1 基本类型

创建变量时,var、let、const 都是和 JS 的使用方式一样,但是需要约束变量的数据类型。
基础语法:var 变量名: 类型 = 值 ;

var a: number = 1;
let b: string = 'typescript';
const c: boolean = true;
const e: undefined = undefined;
const f: null = null;

1.2 void

void表示没有任何数据类型(或空值 undefined)。

通常,当一个函数没有返回值的时候,会将返回值的类型设置为 void。

function fn(): void { ... };

1.3 never

never 没有值,永远不会返回结果,用来返回错误。

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

二、特殊数据类型

2.1 any

any表示任意数据类型。(一般不推荐使用)

let d: any;(显示的any//声明变量如果不指定类型,则TS解析器会自动判断变量的类型为any(隐式的any) 。
let d;
d = 10;
d = "hello";
d = true;
//any 类型的变量可以赋值给任意类型的变量。

2.2 unknown

unknown未知类型的值,类似 any

实际上就是一个类型安全的any,但是不能直接赋值给其他变量。

2.3 数组 array

TS 默认要求数组中的每一项必须是同一个数据类型。

两种写法:
const a: number[];
const b: Array<string>;

在声明时直接赋值
const a: number[] = [1,2,3];
const b: Array<string> = ['1','2','3'];

也可以将数组的类型设置为any
const c: any[] = [1,'2',3];

2.4 元祖 tuple

允许一个数组中保存多个类型的数据。

但是,要求数组中的值与元祖类型必须:数量要一致 位置要对应 类型要对应

const a: [number, string] = [18,'zhangsan'];

2.5 对象 object

在TS中定义对象时,要定义出对象中有哪些属性,以及每个属性的值是什么类型。

const user: { _id: number, name: string } = { id: 1, name: 'Li'};

// ? 表示可选属性
const user: { _id: number, name?: string } = { id: 1, name: 'Li'};

// [propName: string]: any 任意可选属性
const user: { _id: number, name: string, [propName: string]: any } 
= { id: 1, name: 'Li', age: 18, gender: '男'};

//特殊的 可以赋值一个函数,也不会报错
let a: object;
a:{};
a = function () {};

2.6 枚举 enum

enum枚举类型用于取值被限定在一定范围内的场景,比如一周只有七天,颜色限定为红绿蓝等。

2.6.1 数字枚举

数字枚举有自增长的行为,可以使用初始器指定从几开始自增。

(1)不使用初始器

//a 使用默认值为 0,其余成员会从 0 开始自动增长。
enum test {
    a,	// a = 0
    b,	// b = 1
    c,	// c = 2
    d,	// d = 3
};
Object.values(test).map((item)=>{
  console.log(item);
})

(2)使用初始器

//a 使用默认值为 1,其余成员会从 1 开始自动增长。
enum test {
    a = 1,	// a = 1
    b,	// b = 2
    c,	// c = 3
    d,	// d = 4
};

2.6.2 字符串枚举

字符串枚举没有自增的行为,每个成员必须初始化赋值。

enum test {
    a = 'a',
    b = 'b',
    c = 'c',
    d = 'd',
}

2.6.3 异构枚举

混合字符串和数字成员,不推荐使用。

enum test {
    Yes = 'Y',
    No = 0,
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值