TypeScript代码语法快速入门

发布于:2025-07-29 ⋅ 阅读:(18) ⋅ 点赞:(0)

以下是您提供的 TypeScript 代码中涉及的核心知识点归纳:


一、基础类型与类型操作

  1. 类型断言

    const result = numArr.find(item => item > 2) as number; // 强制类型断言
    
    • 用于手动指定类型(可能跳过类型检查,需谨慎)
  2. 元组类型

    let t1: [number, string, number?] = [1, 'A']; // 可选元素
    let t2: [number, string, number] = [1, 'A', 2];
    
    • 固定长度和类型的数组,支持可选元素 (?)
  3. 枚举类型

    enum MyEnum { A, B, C } // 双向映射
    console.log(MyEnum[0]); // 输出 "A"
    
    • 枚举值与数字/字符串的自动双向映射特性

二、函数与参数处理

  1. 函数签名

    function MyFn(a: number, b: string, c?: boolean, ...rest: number[]): number { ... }
    
    • 参数类型注解、可选参数 (?)、剩余参数 (...rest)
  2. 函数重载

    function hello(name: string): string;
    function hello(age: number): string;
    function hello(value: string | number): string { ... }
    
    • 通过多个声明支持不同类型参数的重载逻辑

三、面向对象编程

  1. 接口 (Interface)

    interface Obj { name: string; age: number }
    
    • 定义对象的结构约束
  2. 类与修饰符

    class Article {
      public title: string;         // 默认 public
      private tempData?: string;    // 仅类内部访问
      protected innerData?: string; // 允许子类访问
      static readonly author: string = '张三'; // 静态只读属性
    }
    
    • 修饰符:publicprivateprotectedstaticreadonly
  3. 存取器 (Getter/Setter)

    class User {
      private _password: string = '';
      get password(): string { return '*****'; }
      set password(newPassword: string) { ... }
    }
    
    • 通过 get/set 控制属性的访问和修改
  4. 抽象类与继承

    abstract class Animal {
      abstract name: string;       // 抽象属性
      abstract makeSound(): void;  // 抽象方法
      move(): void { ... }         // 具体方法
    }
    class Cat extends Animal { ... }
    
    • 抽象类通过 abstract 定义未实现的成员,子类必须实现

四、高级类型

  1. 类型别名 (Type Alias)

    type MyUserName = string | number;
    
    • 简化复杂类型的声明,支持联合类型 (|)
  2. 泛型
    泛型函数

    function myFnfx<T>(a: T, b: T): T[] { return [a, b]; }
    myFnfx<number>(1, 2);    // 显式指定类型
    myFnfx('a', 'b');        // 类型推断
    

    泛型类

    class MyClass<T> { value: T; do(input: T): T { ... } }
    const myStr = new MyClass<string>('hello');
    
    • 提供类型灵活性,避免重复代码

五、接口扩展

  1. 接口继承
    interface Parent { prop1: string; prop2: number }
    interface Child extends Parent { prop3: string }
    
  2. 接口实现
    class Dog implements Animal_interFace, C { ... }
    
    • 类可通过 implements 实现多个接口

六、其他关键点

  1. 可选链 (?)

    bbb = 100;    // 直接初始化
    aaa?: string; // 可选属性
    
    • 可选属性标记 (?)
  2. 构造函数参数属性

    constructor(public title: string, content: string) { ... }
    
    • 简化类属性的声明和初始化

代码亮点总结

  • 类型系统:涵盖基础类型、联合类型、类型断言等核心特性
  • OOP 特性:完整的类、继承、抽象类、存取器实现
  • 泛型设计:函数和类中灵活应用泛型
  • 接口与类型别名:对比使用场景,清晰定义数据结构
  • 函数重载:提升 API 的类型友好性

建议结合实际场景练习这些语法,例如通过泛型实现通用工具函数或抽象业务模型。


网站公告

今日签到

点亮在社区的每一天
去签到