TypeScript 中常见的类型及其定义方法

  1. 基础类型 (Basic Types):

    • Boolean:布尔值。

      let isDone: boolean = false;
      
    • Number:数字。

      let decimal: number = 6;
      
    • String:字符串。

      let color: string = "blue";
      
    • Array:数组类型。

      let list: number[] = [1, 2, 3];
      // 或
      let list: Array<number> = [1, 2, 3];
      
    • Tuple:已知元素数量和类型的数组。

      let x: [string, number] = ['hello', 10];
      
    • Enum:枚举类型。

      enum Color {Red, Green, Blue}
      let c: Color = Color.Green;
      
    • Any:任何类型,尽量避免使用。

      let notSure: any = 4;
      
    • Void:通常用于函数没有返回值的场景。

      function warnUser(): void {
        console.log("This is my warning message");
      }
      
    • Null 和 Undefined:它们有自己的类型名称,但不是特别有用。

      let u: undefined = undefined;
      let n: null = null;
      
    • Never:表示永远不会发生的值的类型。

      function error(message: string): never {
        throw new Error(message);
      }
      
    • Object:表示非原始类型。

      declare function create(o: object | null): void;
      
  2. 高级类型 (Advanced Types):

    • Union Types:联合类型。

      let value: number | string = 'hello'; // 可以是 number 或 string
      
    • Intersection Types:交叉类型。

      interface A { a: string }
      interface B { b: string }
      let value: A & B = { a: 'a', b: 'b' };
      
    • Type Aliases:类型别名。

      type Name = string;
      
    • Literal Types:文字类型。

      type Easing = "ease-in" | "ease-out" | "ease-in-out";
      
    • Mapped Types:映射类型。

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

      type TypeName<T> =
        T extends string ? "string" :
        T extends number ? "number" :
        "object";
      
  3. 自定义类型

    • Interface:接口。

      interface LabelledValue {
        label: string;
      }
      
    • Class:类。

      class Greeter {
        greeting: string;
        constructor(message: string) {
          this.greeting = message;
        }
        greet() {
          return "Hello, " + this.greeting;
        }
      }
      
    • Type Assertion:类型断言。

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

这只是 TypeScript 类型的简短概述。实际上,TypeScript 提供了更多的类型工具和技巧,以帮助你更好地描述和管理你的代码。如果你想要深入了解更多关于 TypeScript 的类型,建议查看其官方文档。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值