当前位置: 首页 > wzjs >正文

大悟网站开发顺企网官网

大悟网站开发,顺企网官网,深圳网站关键词优化排名,设计师兼职平台在 TypeScript 中,类型是静态类型系统的核心,用于在编译阶段检查代码的正确性。TypeScript 提供了丰富的类型系统,包括基本的原始类型、复合类型、以及用户自定义的类型。以下是对 TypeScript 中各种类型的详细分类和说明: 1. 原…

在 TypeScript 中,类型是静态类型系统的核心,用于在编译阶段检查代码的正确性。TypeScript 提供了丰富的类型系统,包括基本的原始类型、复合类型、以及用户自定义的类型。以下是对 TypeScript 中各种类型的详细分类和说明:

1. 原始类型(Primitive Types)

原始类型是 TypeScript 中的基本数据类型,它们是不可变的。TypeScript 继承了 JavaScript 的所有原始类型,并添加了一些额外的类型支持。

1.1 number

表示数字,包括整数和浮点数。

let num: number = 42;       // 整数
let pi: number = 3.14;      // 浮点数
1.2 string

表示文本数据,由字符组成的序列。

let greeting: string = "Hello, TypeScript!";  // 字符串
1.3 boolean

表示逻辑实体,只有两个值:truefalse

let isReady: boolean = true;
1.4 undefined

表示变量已声明但未初始化,即没有赋予具体的值。

let x: undefined;  // x 的值为 undefined
1.5 null

表示故意赋予变量的空值。

let y: null = null;  // y 的值为 null
1.6 symbol

表示一个唯一的、不可变的数据类型,通常用于对象属性的键。

let mySymbol: symbol = Symbol('mySymbol');
1.7 bigint

表示大于 2^53 - 1 的整数。

let bigNumber: bigint = BigInt(1234567890123456789012345678901234567890n); // BigInt 类型的值后面加 n
1.8 void

表示没有返回值的函数或变量。

function logMessage(message: string): void {console.log(message);
}
1.9 never

表示永远不会返回的函数或变量,通常用于错误处理。

function throwError(message: string): never {throw new Error(message);
}
1.10 unknown

表示一个未知的类型,可以在运行时检查后再使用。

let value: unknown;
value = 42;  // OK
value = "Hello";  // OK

2. 复合类型(Composite Types)

复合类型是由多个值组成的类型,包括数组、元组、对象、枚举等。

2.1 Array

表示一个有序的值的集合,可以包含任意类型的元素。

let numbers: number[] = [1, 2, 3];
let strings: string[] = ["a", "b", "c"];
let mixed: (string | number)[] = [1, "two", 3];
2.2 Tuple

表示一个固定长度的数组,每个位置的类型可以不同。

let tuple: [string, number] = ["Alice", 25];
2.3 Object

表示一个无序的键值对集合。

let person: { name: string; age: number } = { name: "Alice", age: 25 };
2.4 Interface

用于定义对象的结构。

interface Person {name: string;age: number;
}let person: Person = { name: "Alice", age: 25 };
2.5 Type Alias

用于定义类型别名,可以简化复杂的类型声明。

type Point = { x: number; y: number };let point: Point = { x: 10, y: 20 };
2.6 Enum

用于定义一组命名的常量。

enum Color { Red, Green, Blue }let color: Color = Color.Red;

3. 函数类型

函数类型用于定义函数的参数类型和返回值类型。

3.1 函数声明
function add(a: number, b: number): number {return a + b;
}
3.2 函数表达式
let add: (a: number, b: number) => number = (a, b) => a + b;

4. 联合类型(Union Types)

联合类型表示一个值可以是几种类型之一。

let value: string | number;
value = "Hello";  // OK
value = 42;       // OK

5. 交叉类型(Intersection Types)

交叉类型表示一个值同时具有多个类型。

type Person = { name: string; age: number };
type Loggable = { log: () => void };type PersonWithLogging = Person & Loggable;let personWithLogging: PersonWithLogging = {name: "Alice",age: 25,log() {console.log(`Name: ${this.name}, Age: ${this.age}`);}
};

6. 类型断言(Type Assertions)

类型断言用于告诉 TypeScript 编译器某个值的类型。

let value: any = "Hello";
let strLength: number = (value as string).length;

7. 类型守卫(Type Guards)

类型守卫用于在运行时检查变量的类型。

function isString(value: any): value is string {return typeof value === "string";
}let value: any = "Hello";if (isString(value)) {console.log(value.toUpperCase()); // OK
}

8. 类型查询(Type Queries)

类型查询用于获取一个类型的类型。

type Box<T> = { value: T };type BoxType = typeof Box; // BoxType 的类型是 (T) => { value: T }

9. 条件类型(Conditional Types)

条件类型用于根据条件选择不同的类型。

type IsNumber<T> = T extends number ? "Yes" : "No";type IsNumberResult = IsNumber<42>; // "Yes"
type IsNotNumberResult = IsNumber<string>; // "No"

10. 映射类型(Mapped Types)

映射类型用于基于现有类型生成新的类型。

type OptionsFlags<Type> = {[Property in keyof Type]: boolean;
};type FeatureFlags = { darkMode: () => void; newUserProfile: () => void };type FeatureOptions = OptionsFlags<FeatureFlags>; // { darkMode: boolean; newUserProfile: boolean }

11. 索引签名(Index Signatures)

索引签名用于定义对象的动态属性。

type StringArray = { [index: number]: string };let myArray: StringArray = {};
myArray[0] = "Hello";
myArray[1] = "TypeScript";

在这里插入图片描述

12. 字面量类型(Literal Types)

字面量类型用于定义具体的值。

type Name = "Alice" | "Bob";let name: Name = "Alice";  // OK
name = "Bob";             // OK
name = "Charlie";         // Error

13. 类型别名与接口的区别

  • 类型别名(type

    • 可以用于联合类型、元组等。
    • 可以定义原始类型、联合类型、元组等。
    • 不支持扩展和实现。
    type Point = { x: number; y: number };
    
  • 接口(interface

    • 主要用于描述对象的结构。
    • 支持扩展和实现。
    • 可以在运行时检查。
    interface Person {name: string;age: number;
    }
    

总结

TypeScript 提供了丰富的类型系统,包括基本的原始类型、复合类型、函数类型、联合类型、交叉类型、类型断言、类型守卫、类型查询、条件类型和映射类型等。这些类型系统使得 TypeScript 能够在编译阶段进行严格的类型检查,从而减少运行时错误,提高代码的可维护性和可读性。通过合理使用这些类型,你可以编写出更安全、更可靠的代码。


文章转载自:

http://5j27I1NV.Lkthj.cn
http://EctYbLfJ.Lkthj.cn
http://6SjZVn98.Lkthj.cn
http://ZNW54a8t.Lkthj.cn
http://ffBk4yXa.Lkthj.cn
http://paDuNmHg.Lkthj.cn
http://slz9wqpk.Lkthj.cn
http://FjgaqoW2.Lkthj.cn
http://oMmYVoA9.Lkthj.cn
http://GbgsQrCD.Lkthj.cn
http://wyfSCUib.Lkthj.cn
http://dl8COaX6.Lkthj.cn
http://W0fUctnv.Lkthj.cn
http://MKyymEzV.Lkthj.cn
http://6e13iY7u.Lkthj.cn
http://N9M24vhR.Lkthj.cn
http://qTxh8aly.Lkthj.cn
http://nzQK6g6K.Lkthj.cn
http://lYd70XUx.Lkthj.cn
http://FHRt2axJ.Lkthj.cn
http://3BygNG5P.Lkthj.cn
http://MiSVwa6L.Lkthj.cn
http://Df74S0G9.Lkthj.cn
http://XsM948Xc.Lkthj.cn
http://OkfVIUiW.Lkthj.cn
http://BT0FsPRE.Lkthj.cn
http://kpLDu6ID.Lkthj.cn
http://Ej1M1V08.Lkthj.cn
http://0pKhWelF.Lkthj.cn
http://PSkVUQmP.Lkthj.cn
http://www.dtcms.com/wzjs/728787.html

相关文章:

  • 做网站网站的虚拟空间企业风首页中文官网模板
  • 镇江网站建设公司东莞网络营销策划有限公司
  • 上海网站建设咨询站霸网络豌豆荚下载
  • 如果一个网站没有备案佛山网站优化美姿姿seo
  • 建网站的书籍深紫色网站
  • 从事网站美工建设合肥市蜀山区做个网站多少钱
  • 男女做暖暖免费网站柯城网站建设
  • 网站cms管理后台电话号码制作网页的工具是什么
  • xampp可以做网站吗微信分销网站建设多少钱
  • 高端视觉网站小程序推广平台有哪些
  • 网站建设公司哈怎么设置wordpress头像
  • 购买域名后如何建设网站wordpress国外主题加载慢
  • 建设网站那家好西宁网站搭建企业
  • 网站安全风险提示单大型图片库网站建设
  • 网站服务器拒绝连接wordpress数据大
  • 创业园网站建设有关大数据的网站及网址
  • 网站的小图标怎么做的论文中小企业的网站建设
  • 江门网站制作专业塑料机械怎么做网站
  • 网站论坛怎样建设可信网站认证服务中心
  • 南昌seo网站建设wordpress 运行时间
  • wordpress两个站点共用用户视觉传达设计考研
  • 经典网站设计网站十大免费客户管理系统
  • 临沂自助建站软件大连公路建设有限公司网站
  • 公司网站 模板自己公司怎样做免费的网站
  • 免费个人网站源码php字体不显示wordpress
  • 江苏省工程建设标准定额网站有好的学网站建设的书吗
  • 西安公司网站如何建立惠州网络运营
  • 怎么做自己的门户网站优门设 网站
  • 即墨网站推广织梦做网站要多长时间
  • 网站建设具体步骤应该怎么做电子商务网站的构建