TypeScript数据类型解析

3 篇文章 0 订阅
3 篇文章 0 订阅

前言

TypeScript 是一种静态类型的超集语言,扩展了 JavaScript 的功能。它提供了丰富的数据类型,包括基本数据类型和复杂数据类型。下面是对这些类型的详细解析和一些经典例子。


基本数据类型

  1. 布尔类型(Boolean)

    • 表示逻辑值,只能是truefalse

    • 示例:let isDone: boolean = false;

  2. 数字类型(Number)

    • 用于表示数值,可以是整数或浮点数。

    • TypeScript支持十进制、二进制、八进制和十六进制字面量。

    • 示例:let count: number = 10; let price: number = 3.99;

  3. 字符串类型(String)

    • 用于表示文本数据。

    • 可以使用双引号(“”)或单引号(‘’)表示字符串。

    • 示例:let message: string = "Hello, TypeScript!";

  4. 空值(Null 和 Undefined)

    • null表示没有任何对象值。

    • undefined表示一个变量被声明了,但没有被赋值。

    • 示例:let value1: null = null; let value2: undefined = undefined;

  5. 枚举类型(Enum)

    • 是对JavaScript标准数据类型的一个补充,用于定义一组命名的常量。

    • 示例:enum Color { Red, Green, Blue } let myColor: Color = Color.Green;

  6. 任意类型(Any)

    • 当在编程阶段不确定变量的类型时,可以使用any类型。

    • 示例:let notSure: any = 4; notSure = "maybe a string"; notSure = false;

  7. 空类型(Void)

    • 表示没有任何类型,一般用于说明函数的返回值不能是undefinednull之外的值。

    • 示例:function logMessage(): void { console.log("This is a log message."); }

  8. never

    • 表示位置类型,通常用于错误位置或总是抛出异常的函数。

    • 例子:function throwError(message: string): never { throw new Error(message); }

复杂数据类型

  1. 数组 - 表示元素集合,可以是固定类型或多种类型。

    • 同类型数组:let list: number[] = [1, 2, 3];

    • 泛型数组:let list: Array<number> = [1, 2, 3];

  2. 元组 - 已知元素数量和类型的数组。

    • 例子:let x: [string, number] = ["hello", 10];
  3. 枚举 - 一组命名的常数。

    • 例子:enum Color {Red, Green, Blue} let c: Color = Color.Green;
  4. 对象 - 表示无序的键值对集合。

    • 例子:let person = { name: "Alice", age: 21 };
  5. - 用于创建对象的模板。

    • 例子:

      
      class Greeter {
      
        greeting: string;
      
        constructor(message: string) {
      
          this.greeting = message;
      
        }
      
        greet() {
      
          return "Hello, " + this.greeting;
      
        }
      
      }
      
      let greeter = new Greeter("world");
      
      
  6. 接口 - 定义了对象的结构,但不实现它。

    • 例子:

      
      interface Name {
      
        name: string;
      
        age: number;
      
      }
      
      function greeter(person: Name) {
      
        console.log("Hello, " + person.name + "! You are " + person.age + " years old.");
      
      }
      
      
  7. 函数 - 表示一段可重用的代码。

    • 例子:

      
      function add(x: number, y: number): number {
      
        return x + y;
      
      }
      
      
  8. 泛型 - 允许在创建类、接口或函数时使类型成为参数。

    • 例子:

      
      function identity<T>(arg: T): T {
      
        return arg;
      
      }
      
      let output = identity<string>("myString");
      
      
  9. 联合类型 - 表示一个值可以是几种类型之一。

    • 例子:let value: string | number = "hello"; // 也可以是 value = 42;
  10. 类型别名 - 为类型创建一个新的名称。

    • 例子:type Name = string; let userName: Name = "TypeScript";
  11. 字面量类型 - 表示原始值的精确类型。

    • 例子:let size: 'small' | 'medium' | 'large' = 'medium';
  12. 索引访问签名 - 允许你访问对象的属性,这些属性的键是字符串或数字。

    • 例子:

      
      interface StringArray {
      
        [index: number]: string;
      
      }
      
      let myArray: StringArray;
      
      myArray = ["Bob", "Fred"];
      
      
  13. 映射类型 - 创建一个新类型,其属性是从现有类型派生的。

    • 例子:

      
      type OptionsFlags = {
      
        [K in keyof typeof MY_OPTIONS]: boolean;
      
      };
      
      

总结

TypeScript通过丰富的数据类型系统,为JavaScript开发提供了更强的类型安全和代码可读性。基本数据类型和复杂数据类型各有其应用场景,开发者可以根据实际需要选择使用。通过上述经典例子的展示,希望能帮助读者更好地理解TypeScript的数据类型系统。

  • 14
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值