基础数据类型-2

Tutorial: TS初级二 Category: TS Published: 2026-04-07 13:58:26 Views: 20 Likes: 0 Comments: 0
  1. 枚举
export default {};

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

// 枚举用于表示固定的几个取值
// 例如: 人的性别只能是男或者女

enum Gender {
  Male,
  Female,
}

let val: Gender;
val = Gender.Male;
val = Gender.Female;
// val = 0;
// val = 1;
// val = "邱淑贞";
// val = false;

// 注意点: TS中枚举类型的本质就是数值类型, 所以赋值数值不会报错
// val = 100;
// val = 200;

console.log(Gender.Male); // 0
console.log(Gender.Female); // 1

// 注意点: TS中枚举类型的取值, 默认从0开始, 从上向下依次递增
enum Gender2 {
  Male = 5,
  Female,
}

console.log(Gender2.Male); // 5
console.log(Gender2.Female); //  6

enum Gender3 {
  Male,
  Female = 10,
}
console.log(Gender3.Male); // 0
console.log(Gender3.Female); //  10

enum Gender4 {
  Male = 100,
  Female = 1200,
}
console.log(Gender4.Male); // 100
console.log(Gender4.Female); //  1200
  1. bight 和 symbol
export default {};

// bight类型: 表示非常大的数
// symbol类型: 表示全局唯一引用
// ES2020可用

const Hundred1: bigint = BigInt(100);
const Hundred2: bigint = 100n;

const firstName = Symbol("name");
const secondName = Symbol("name");

// if (firstName === secondName) {
//   console.log('ok')
// }
  1. 变量的声明与解构
export default {};

// 变量声明的方式
// var | let | const

// 数组解构
let goddess = ["邱淑贞", "赵雅芝", "张敏"];
let [first, second, a, b] = goddess;
// console.log(first);
// console.log(second);
// console.log(a);
// console.log(b);

let [third, ...rest] = ["赵今麦", "蒋依依", "欧阳娜娜", "刘浩存"];
console.log(third); // 赵今麦
console.log(rest); // [ '蒋依依', '欧阳娜娜', '刘浩存' ]
console.log(...rest); // 蒋依依 欧阳娜娜 刘浩存

// axios   {code: xxx , aaa: 111, bb:xxx, data: xxx,}
let [, fourth, , fiifth] = [1, 2, 3, 4];
console.log(fourth); // 2
console.log(fiifth); // 4

// 对象解构
let beauty = {
  uname: "杨超越",
  age: 20,
  sex: "女",
};

let { uname, sex } = beauty;
console.log(uname);
console.log(sex);
  1. 类型断言
export default {};
// 类型断言
//  1.<我们想要它成为的类型>变量名
//  2.变量名 as 我们想要它成为的类型

let str =
  "世界上最遥远的距离不是生与死, 你是if而我是else, 似乎一直相伴但又永远相离";

// 方式一
// let len = (<string>str).length;
// console.log(len);

// 方式二  as 作为
// let len = (str as string).length;
// console.log(len);

// function TypeAs(x: string | number) {
//   console.log(x.length);

// }

// TypeAs("世界上最痴心的等待, 是我当case而你当switch, 或许永远都选不上自己");

function TypeAs(x: string | number) {
  // let len = (x as string).length;
  let len = (<string>x).length;
  console.log(len);
}

TypeAs("世界上最痴心的等待, 是我当case而你当switch, 或许永远都选不上自己");
  1. 类型别名
export default {};

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

// 第一种
type beautys = "邱淑贞" | "唐嫣" | "迪丽热巴" | "赵露思";

let one: beautys;

// one = "赵露思";
// one = 100;
// one = true;
// one = "周杰伦--》最伟大的作品";

// 第二种
type myfun = (a: string, b: number) => number;

let func: myfun = (a: string, b: number) => b;

// 第三种
type myGoddess = {
  name: string;
  age: number;
  sex: string;
};

let shuzhen: myGoddess = {
  name: "邱淑贞",
  age: 18,
  sex: "女",
};