常见的 TypeScript 类型的用法

  1. 基础类型:

    • Boolean:表示逻辑值 true 或 false。

      let isActive: boolean = true;
      
    • Number:TypeScript 支持十进制、十六进制、二进制和八进制字面量。

      let decimal: number = 256;
      let hex: number = 0xff;
      let binary: number = 0b1010;
      let octal: number = 0o744;
      
    • String:可以使用双引号 (“”) 或单引号 (‘’) 来表示字符串。

      let firstName: string = "John";
      let sentence: string = `My name is ${firstName}.`;
      
    • Array:定义数组有两种方式。

      let arr1: number[] = [1, 2, 3];
      let arr2: Array<number> = [1, 2, 3];
      
    • Tuple:表示一个已知元素数量和类型的数组,各元素的类型不必相同。

      let tuple: [string, number] = ['apple', 2];
      
    • Enum:为一组数值赋予友好的名字。

      enum Color {Red = 1, Green, Blue}
      let colorName: string = Color[2]; // 输出 "Green"
      
    • Any:当我们不确定变量的类型时,我们可以使用 any 类型。

      let notSure: any = 4;
      notSure = "maybe a string";
      
    • Void:与 any 相反,当一个函数没有返回值时,通常会返回 void 类型。

      function logMessage(): void {
        console.log("Logged!");
      }
      
    • Null 和 Undefined:默认情况下,它们是所有其他类型的子类型,这意味着你可以把 nullundefined 赋值给其他类型如 number

      let u: undefined = undefined;
      let n: null = null;
      
    • Never:表示的是那些永远不存在的值的类型。

      function throwError(errorMsg: string): never {
        throw new Error(errorMsg);
      }
      
    • Object:表示非原始类型,也就是除 number,string,boolean,symbol,null 或 undefined 之外的类型。

      function create(o: object): void {
        console.log(o);
      }
      
  2. 高级类型

    • Union Types:表示一个值可以是几种类型之一。

      function displayStringOrNumber(value: number | string) {
        console.log(value);
      }
      
    • Intersection Types:可以合并多个类型到一个类型。

      interface A { a: string }
      interface B { b: string }
      let value: A & B = { a: 'valueA', b: 'valueB' };
      
    • Type Aliases:为类型提供一个新的名字。

      type StringOrNumber = string | number;
      
    • Literal Types:与 union types 结合,可以实现类似枚举的功能。

      type Direction = "North" | "East" | "South" | "West";
      
    • Mapped Types:将一个类型的属性映射到另一个类型。

      type Readonly<T> = {
        readonly [P in keyof T]: T[P];
      };
      
    • Conditional Types:根据条件选择类型。

      type Check<T> = T extends string ? true : false;
      
  3. 自定义类型

    • Interface:定义对象的类型结构。

      interface Person {
        firstName: string;
        lastName?: string; // 可选属性
      }
      
      function greet(person: Person) {
        console.log(`Hello, ${person.firstName}`);
      }
      
    • Class:定义对象的实际结构和方法。

      class Animal {
        move(distance: number = 0) {
          console.log(`Animal moved ${distance}m.`);
        }
      }
      
    • Type Assertion:明确变量的类型。

      let someValue: any = "this is a string";
      let strLength: number = (<string>someValue).length;
      // 或
      let strLength: number = (someValue as string).length;
      

这仍然是 TypeScript 的浅层概述。为了深入理解和充分利用它,建议进一步研究 TypeScript 的官方文档。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值