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里的相同键的类型不可被改变,但是可被
extends
和implements
,也可以在创建之后向界面添加新字段
- 只能表示对象
AddressWithUnit
接口类型基于BasicAddress
接口类型,并多出新的字段
7、泛型
描述两个值之间的对应关系,可以不用具体规定组件的类型,而是在使用的时候决定类型
- 构建一个函数,需要两个参数
length
和value
,length的类型为number
,value类型由传入的参数类型决定,最后返回传入类型数组
value类型 => 传入
number
类型 => 函数返回值为 number[]
value类型 => 传入
string
类型 => 函数返回值为 string[]
- 箭头函数泛型写法
8、类型声明文件
.ts
文件
既可以包含类型信息又可以包含可执行的代码,最后会被编译为
js
文件,ts编译器会自动生成对外的.d.ts
文件.d.ts
文件
只包含类型信息的类型定义文件,不会生成 .js 文件,仅用于提供类型信息,使用时不需要导入可以直接使用
#常见数据结构示例
【字典】构建一个键和值都为string
的对象
【字典】构建一个对象,键为固定的三个 string
类型, 值为一个复杂对象形式
【对象数组】构建一个数组,数组内包含不确定数量的对象,对象包含的属性已知
【高阶组件的props参数类型】
- 作者:NotionNext
- 链接:https://mia.missz.top//article/0843eb22-ec4e-412c-b2ab-123505e16e5a
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。