TypeScript - 数据类型 - 声明变量

TypeScript 是一种强类型的 JavaScript 超集,它引入了静态类型检查和类型注解。基础类型是 TypeScript 中最基本的类型,用于定义变量的类型。

一、数据类型

常用基本类型:boolean 、number 、string 常用,都是小写

1.布尔类型(boolean)常用

  • 用于表示 true 或 false 的值。
let isTrue: boolean = true;
let isFalse: boolean = false;

2.数字类型(number)常用

  • 用于表示整数和浮点数(与 JavaScript 相同),没有区分整型和浮点型。
let age: number = 25;
let height: number = 5.9;

3.字符串类型(string)常用

  • 用于表示文本数据,支持单引号、双引号和模板字符串(反引号)。
let name: string = "Alice";
let greeting: string = `Hello, ${name}!`;

4.数组类型(Array)

  • 数组类型可以通过 类型[] 或 Array<类型> 的形式声明。
let numbers: number[] = [1, 2, 3, 4];
let fruits: Array<string> = ["apple", "banana", "orange"]; // 另一种写法

5.元组类型(Tuple)

  • 元组是一种特殊的数组,可以包含不同类型的元素,并且每种元素的类型和数量都固定。
let person: [string, number] = ["Alice", 25];

6.枚举类型(Enum)

  • 枚举用于定义一组命名常量,可以更清晰地表示数值。
enum Color {
    Red,
    Green,
    Blue
}

let c: Color = Color.Green;

①数字枚举 

②字符串枚举

③常量枚举 

官方描述:常量枚举是一种特殊的枚举类型,它使用 const 关键字定义,在编译时会被内联,避免生成一些额外的代码。

7.任意类型(any)

any 表示不做任何类型检查,可以赋任意类型的值,通常用于与 JavaScript 代码的交互;

注意点:any 类型的变量,可以赋值给任意类型的变量

let anything: any = "Hello";  // 显示 any
anything = 123; // 也可以是数字

let b; // 隐式 any

 

8.无类型(void)

  • 用于表示没有返回值的函数类型;
  • 即:函数返回值为空,也不应依赖其返回值进行任何操作;
function logMessage(message: string): void {
    console.log(message);
}

  • 符合语法规范的写法:

9.null 和 undefined

  • null 和 undefined 的类型分别为 null 和 undefined,这两者常用于表示“没有值”。
let u: undefined = undefined;
let n: null = null;

10.对象类型(Object)

  • 表示非原始类型的值,比如对象。较少使用
let person: { name: string; age: number } = {
    name: "Alice",
    age: 25
};

 

大写Object : 除了 null 和 undefined ,其余都可以存储。 

声明对象类型方式:

①常用形式

②索引签名 

允许定义对象可以具有任意数量的属性,这些属性的键和类型是可变的,常用于:描述类型不确定的属性,(具有动态属性的对象)。

声明函数类型方式: 

声明数组类型方式:

11.未知类型(unknown) 

  • 可以理解为一个类型安全的 any ,适用于:不确定数据的具体类型;

  • unknown 会强制开发者在使用之前进行类型检查,从而提高更强的类型安全性; 

  • 读取 any 类型数据的任何属性都不会报错,而 unknow 正好与之相反。 

12.任何值都不是(never) 

never 的含义是:任何值都不是,简言之就是不能有值,undefined,null,‘ ’  , 0 都不行!

  • 几乎不用 never 去直接限制变量,因为没有意义;
  • never 一般是 TypeScript 主动推断出来的;

  • never 也可以用于限制函数的返回值;

13.type 关键字

type 可以为任意类型创建别名,让代码更简洁、可读性更强,同时能更方便地进行类型复用和扩展。

  • 类型别名使用 type 关键字,type 后跟类型名称,例如下面代码中 num 是类型别名。

  • 联合类型:是一种高级类型,它表示一个值可以是几种不同类型之一。

  • 交叉类型:允许将多个类型合并为一个类型,合并后的类型将拥有所有被合并类型的成员。交叉类型通常用于对象类型。

二、基本语法

1.变量声明

在 TypeScript 中,可以通过 letconst、或 var 关键词来声明变量,通常推荐使用 let 和 const

const PI: number = 3.14; // 常量
let radius: number = 5;   // 变量

2.类型注解

TypeScript 允许在声明变量时显式地指定类型,使用冒号 : 符号来添加类型注解:

let name: string; // 声明一个字符串类型的变量
name = "Alice";   // 赋值

如果不指定类型,TypeScript 将自动推断该变量的类型

let age = 25; // age 的类型将被推断为 number

3.函数参数和返回值的类型

在 TypeScript 中,为函数的参数返回值也可以指定类型:

function add(x: number, y: number): number {
    return x + y;
}

且,函数传递的参数个数也得一致!!!!

4.注意点

 

三、类型总览