Appearance
❤ TS类型
在 TypeScript 中,类型(Type)是用于描述变量、函数等值的形状和行为的,TypeScript 提供了多种内置类型
🌟类型注解(Type Annotation)
👉作用
类型注解是TypeScript区别于JavaScript最显著的特点
TS中为了使代码更规范,更具有可维护性,增加了类型的概念,用来约束变量、参数和函数的值
也就是TS给变量设置了类型,使得变量只能存储某种类型的值
👉 语法
JS
let 变量: 类型;
let 变量: 类型 = 值;
function fn(参数: 类型, 参数: 类型): 类型{
...
}
例如TypeScript使用类型注解来显式指定标识符的类型(变量、函数、对象)
js
//代码之中的` : number` 就是类型注解
var age: number = 44; // 数字变量
var name: string = "Rahul"; // 字符串变量
var isUpdated: boolean = true; // 布尔变量
🌟类型
约束
的思想
接下来看看TS的类型约束
👉所有类型
类型 | 例子 | 描述 |
---|---|---|
number | 1, -33, 2.5 | 任意数字 |
string | 'hi', "hi", hi | 任意字符串 |
boolean | true, false | 布尔值true或false |
字面量 | 其本身 | 限制变量的值就是该字面量的值 |
any | * | 任意类型 |
unknown | * | 类型安全的any |
void | 空值(undefined) | 没有值(或undefined) |
never | 没有值 | 不能是任何值 |
object | 任意的JS对象 | |
array | [1,2,3] | 任意JS数组 |
tuple | [4,5] | 元组,TS新增类型,固定长度数组 |
enum | enum {A, B} | 枚举,TS中新增类型 |
1. 基本类型(Primitive Types)
JS
number: 表示所有数字类型(整数和浮点数)。
let age: number = 25;
let pi: number = 3.14;
string: 表示所有字符串类型。
let name: string = "Alice";
boolean: 表示布尔值(true 或 false)。
let isActive: boolean = true;
null: 表示空值。
let nothing: null = null;
undefined: 表示未定义的值。
let notDefined: undefined = undefined;
symbol: 表示唯一的标识符类型,通常用于对象属性的唯一标识。
let sym: symbol = Symbol('unique');
bigint: 表示大整数类型。
let bigNumber: bigint = 100n;
👉数字number
所有的数字都是浮点数,部区分 int 、float、double等类 型,所有的数字都是number
number类型支持十进制、十六进制等,以及 NaN和Infinity等
JS
const decimal: number = 66;
const binary: number = 0b1010; // 10
const hex: number = 0xf00d; // 61453
const octal: number = 0o744;// 484
const big: bigint = 100n;// 表示一个bigint型
👉string字符串
支持常规的单引号和双引号,也支持ES6的模板字符串
JS
const name: string = 'AA'; //
const desc: string = `My name is ${name}`; // My name is AA
👉boolean
JS
let isDone: boolean = false;
👉null和undefined空
js
const u: undefined = undefined; // undefined
const n: null = null; // null
👉Symbol()唯一标识符
每个方法返回的值都是唯一的,并且不能与其他任何值相等。
JS
const sym1: symbol = Symbol()
const sym2: symbol = Symbol('foo')
const sym3: symbol = Symbol('foo')
console.log(sym2 === sym3) // false