TS的数据类型

基本数据类型

  1. number
  2. boolean
  3. string
  4. bigint
  5. symbol

测试小案例

let num: number;
num = 123;
num = '字符串';

数组

let nums: Number[]; // let nums: Array<Number>;
nums = [1, 2, 3, 4];
nums = [1, 2, 3, '字符串', false];

在这里插入图片描述

联合类型

声明一个arr数组,既可以存储number,又可以存储string

let arr: (number | string)[];
arr = [1, 2, 3, '字符串'];
arr = [1, 2, 3, '字符串', false];

但是赋一个其他类型的值就会报错
在这里插入图片描述

任意类型

any 代表着任意类型,默认。但不建议使用

let arr: any[];
arr = [1, 2, 3, '字符串'];
arr = [1, 2, 3, '字符串', false];

在这里插入图片描述

元组

  • 元组类型tuple
  • TS中元组类型其实就是数组类型的扩展
  • 元组类型用来表示已知元素数量和类型的数组,各元素的类型不必相同,对应位置的类型需要需要相同
// 表示定义了一个名称叫做 tuple 的元祖, 这个元祖中将来可以存储3个元素, 
// 第一个元素必须是字符串类型, 第二个元素必须是数字类型, 第三个元素必须是布尔类型
let tuple: [string, number, boolean];
tuple = ['字符串',1, false];
tuple = [1 ,1, false];

在这里插入图片描述
在这里插入图片描述

void

没有返回值的时候可以用void

function test(): void {
    console.log(111);
    return 1;
}

在这里插入图片描述

null与undefined

  • TypeScript里,undefined和null两者各自有自己的类型分别叫做undefined和null。 和 void相似,它们的本身的类型用处不是很大
  • 非严格模式下,可以把 null和undefined赋值给number类型的变量
let n: null = null;
let m: undefined = undefined;
n = 1;

在这里插入图片描述

never

表示的是那些永不存在的值的类型;
never类型是那些总是会抛出异常或根本就不会有返回值的函数表达式或箭头函数表达式的返回值类型;
变量也可能是 never类型,当它们被永不为真的类型保护所约束

object

object表示非原始类型,也就是除number,string,boolean,symbol,null或undefined之外的类型

let obj: object;
obj = {
  name: "字符串",
  num: 1,
  flag: true,
};

枚举

enum类型是对JavaScript标准数据类型的一个补充。 像C#等其它语言一样,使用枚举类型可以为一组数值赋予友好的名字。

// 枚举用于表示固定的几个取值
enum state {
    sta1 = '11',
    sta2 = '22',
    sta3 = '33'
}
let val: state;
val = state.sta1;
val = 11; // 报错,不能将类型“11”分配给类型“state”

断言类型

  • 什么是类型断言?
    类型断言可以用来手动指定一个值的类型,即允许变量从一种类型更改为另一种类型。
  • 语法格式
    <类型>值
    值 as 类型
let str = '字符串'

let num = (str as string).length;
let n = (<string> str).length;

type别名

类型别名就是给一个类型起个新名字, 但是它们都代表同一个类型

用法(1)

type schools = "中山大学" | "天津大学" | "南开大学";

let sch: schools;

sch = "中山大学";
sch = "北京大学"; // 报错,不能将类型“"北京大学"”分配给类型“schools”。

用法(2)

type myFun = (x: number, b: number) => number;

let fun: myFun = (a: number, b: number) => a + b;

用法(3)

type result = {
  name: string;
  age: number;
  flag?: boolean;
};

let obj: result;

obj = {
  name: "字符串",
  age: 18,
  flag: false,
};

obj = {
    name: "字符串",
    age: 18,
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值