type
status
date
slug
summary
tags
category
icon
password
 
目录

1、原始数据数据

  • title 变量和 level 变量是原始数据类型
type类型别名可以也用于原始类型,注意:
1️⃣ 类型声明写在类外面
2️⃣ 接口不能用于原始数据类型

  • 数组

2、对象类型

  • 设置可选属性在属性名之后加 ? ,设置只读属性在属性名前加 readonly

  • 使用ts定义一个包含多个基本数据的对象

💡
【索引签名】描述 字典 结构类型,并强制所有属性与其返回类型匹配
  • 索引签名的键只能是string 或者 number 或者是 symbol
  • number索引器和string索引器可以相互转换
  • A record is preferred over an index signature
  • 构建一个对象,键为number类型,值为string类型

3、函数

  • 参数类型返回值类型 以及 可选参数 具体由参数的结构来决定
    • 函数的返回值ts会自动推断(即使可能会根据情况返回不同的类型,建议有返回值的时候写上类型)

  • 定义一个函数/可选函数,不需要传入参数,也没有返回值
=> 并不是箭头函数,表示函数的定义,左侧是函数的参数类型,右侧是函数的返回值类型

  • 定义一个函数,需要传入参数/参数可选,没有返回值/返回固定的类型

4、联合类型和交叉类型

  • 一个变量的取值只能是 INCREMENT 或者 DECREMENT(也可以是number、boolean或者对象等类型)

  • 一个变量既可以是string类型,也可以是number类型
如果要对id参数进行数据处理,需要使用string和number类型都可以使用的方法;或者是先区分开两者类型,再分别做处理

  • 交叉类型 & 表示将多个类型合并为一个类型,使用交叉类型的对象需要满足其所包含的所有类型条件

5、别名type

  • 别名不可重复
  • type创建后无法更改,不可被扩展,但是可以使用交叉类型&将几个不同的别名对象整合到一起
  • 能使用 in 关键字生成映射类型
  • 能命名对象或者基本类型

6、接口interface

  • 接口可以重复,会整合所有同名的接口中的类型
  • interface里的相同键的类型不可被改变,但是可被extendsimplements,也可以在创建之后向界面添加新字段
  • 只能表示对象

  • AddressWithUnit 接口类型基于 BasicAddress 接口类型,并多出新的字段

7、泛型

描述两个值之间的对应关系,可以不用具体规定组件的类型,而是在使用的时候决定类型
  • 构建一个函数,需要两个参数 lengthvalue,length的类型为 number,value类型由传入的参数类型决定,最后返回传入类型数组
    • value类型 => 传入 number 类型 => 函数返回值为 number[]
      value类型 => 传入 string 类型 => 函数返回值为 string[]

  • 箭头函数泛型写法

8、类型声明文件

  • .ts文件
    • 既可以包含类型信息又可以包含可执行的代码,最后会被编译为js文件,ts编译器会自动生成对外的.d.ts 文件
  • .d.ts文件
    • 只包含类型信息的类型定义文件,不会生成 .js 文件,仅用于提供类型信息,使用时不需要导入可以直接使用

#常见数据结构示例

【字典】构建一个键和值都为string 的对象

【字典】构建一个对象,键为固定的三个 string类型, 值为一个复杂对象形式

【对象数组】构建一个数组,数组内包含不确定数量的对象,对象包含的属性已知

 

【高阶组件的props参数类型】

 
 
React HOC网站性能优化