TS 速记

类型
// 1.基本数据类型
let str: string = "hello world";
let num: number = 123;
let n: null = null;
let u: undefined = undefined;
// let sym: symbol = symbol("123");
let strArr: string[] = ["111", "123"];
// 2.引用数据类型
let numArr: Array<number> = [123, 123];
let obj_arr: object = [123, 123];
let obj_obj: object = { name: "猪猪侠" };
console.log(obj_arr, obj_obj);
function sum(num1: number, num2: number, num3?: number): number {
  return num1 + num2;
}
sum(1, 2);
// 3.特殊类型
let any: any = ""; //任意类型
let unknow: unknown = ""; //描述类型不确定的变量  和any类型有点类似,但是unknown类型的值上做任何事情都是不合法的

//void通常用来指定一个函数是没有返回值的
function unHaveReturn(): void {
  sum(1, 2);
}
const res = unHaveReturn(); //函数不能有返回值 只能是undefined
console.log(res);
// never 表示永远不会发生值的类型
function fun(): never {
  // type 1
  while (true) {
    console.log("111");
  }
  // type 2
  throw new Error();
}
// tuple是元组类型
let 元组类型: [number, string, boolean] = [1, "1", true];
let trueArr: (number | string)[] = [1, "1"];
let 联合类型: string | number = 1;
type 联合类型2 = "string" | "number" | "123" | 123;
// 如果是定义非对象类型,通常推荐使用type
type 类型别名 = {
  num1: number;
  str: string;
};
type 类型别名1 = 类型别名 | number | string | boolean;

// 声明一个对象类型
interface 接口声明 {
  num1: number;
  str: string;
}

// 交叉类型 -s
type stringType = {
  name: string;
};
type funType = {
  fun: () => void;
};
type 交叉类型 = stringType & funType;
const obj: 交叉类型 = {
  name: "111",
  fun: () => {},
};
// 交叉类型 -d

const 断言关键字 = "as";
const str断言: number = 断言关键字 as unknown as number; //需要先转---as unknown---再转其他
// console.log(str断言); //as
非空断言
函数类型

构造签名

可选参数,默认参数,剩余参数
function fun_(num1?: number, num2: number = 1, ...numbs) {}
索引类型
interface I索引类型 {
  [index: `${string}a`]: string;
  [index: string]: string;
}
const 索引类型: I索引类型 = {
  ccca: "1",
  aaa: "aaa",
};
接口继承
接口的实现
枚举类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值