我的日常开发记录日志
首页
  • Laravel
  • Thinkphp
  • Swoole
  • Workman
  • php
  • HTML
  • CSS
  • JavaScript
  • Vue
  • ES6
  • 小程序
  • Mysql
  • Redis
  • Es
  • MongoDb
  • Git
  • Composer
  • Linux
  • Nginx
  • Docker
  • Vpn
  • 开发实战
  • 开发工具类
  • 友情链接
💖关于
💻收藏
  • 分类
  • 标签
  • 归档数据
GitHub (opens new window)

我的日常开发记录日志

never give up
首页
  • Laravel
  • Thinkphp
  • Swoole
  • Workman
  • php
  • HTML
  • CSS
  • JavaScript
  • Vue
  • ES6
  • 小程序
  • Mysql
  • Redis
  • Es
  • MongoDb
  • Git
  • Composer
  • Linux
  • Nginx
  • Docker
  • Vpn
  • 开发实战
  • 开发工具类
  • 友情链接
💖关于
💻收藏
  • 分类
  • 标签
  • 归档数据
GitHub (opens new window)
  • html

  • css

  • javascript

  • vue

  • 小程序

  • Es6

    • ES6
    • ts基础
    • ts注解
      • 1. 类型注解
        • 基本概念
        • 适用场景
      • 2. 接口和类型别名的注解
        • 定义对象结构
        • 应用场景
      • 3. 泛型注解
        • 定义通用类型
        • 适用场景
      • 4. 断言和类型保护
        • 断言
        • 类型保护
      • 5. 总结
    • ts泛型
    • ts对象接口类型
    • vue使用js转换到ts差异
  • 前端
  • Es6
窝窝侠
2024-11-19

ts注解

  • 在 TypeScript 中,注解(Annotations)是用来提供类型信息的标记。理解这些注解有助于更好地利用 TypeScript 的类型系统,提高代码的可读性和可维护性。以下是一些关键点,帮助您理解 TypeScript 注解的方式:

    # 1. 类型注解

    # 基本概念

    • 类型注解是直接在变量、函数参数等地方指定的类型。例如:
    let age: number = 30;
    let name: string = "Alice";
    
    1
    2

    # 适用场景

    • 变量声明: 当您想要明确指定变量的类型时使用。
    let isActive: boolean = true; // 明确表示这是一个布尔值
    
    1
    • 函数参数和返回值: 在函数定义时,您可以注解参数和返回值的类型。
    function greet(name: string): string {
      return `Hello, ${name}!`;
    }
    
    1
    2
    3

    # 2. 接口和类型别名的注解

    # 定义对象结构

    您可以使用 interface 或 type 来定义对象的形状,这也是一种类型注解。

    interface Person {
      name: string;
      age: number;
    }
    
    const user: Person = {
      name: "Alice",
      age: 25,
    };
    
    1
    2
    3
    4
    5
    6
    7
    8
    9

    # 应用场景

    • 数据结构: 当需要定义复杂的数据结构时使用。
    type Point = {
      x: number;
      y: number;
    };
    
    const point: Point = { x: 10, y: 20 };
    
    1
    2
    3
    4
    5
    6

    # 3. 泛型注解

    # 定义通用类型

    泛型使您的代码更加灵活,您可以为函数或类定义可以接受多种类型的参数。

    function identity<T>(arg: T): T {
      return arg;
    }
    
    const output = identity<string>("Hello"); // 指定泛型为字符串类型
    
    1
    2
    3
    4
    5

    # 适用场景

    • 数据处理: 当您需要编写可以处理多种类型的函数时使用。
    class DataHolder<T> {
      private data: T;
      
      constructor(data: T) {
        this.data = data;
      }
    
      getData(): T {
        return this.data;
      }
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11

    # 4. 断言和类型保护

    # 断言

    在某些情况下,您可能知道变量的确切类型,可以使用类型断言来告诉 TypeScript:

    let someValue: any = "This is a string";
    let strLength: number = (someValue as string).length; // 使用类型断言
    
    1
    2

    # 类型保护

    使用条件语句来检查变量类型,确保安全操作:

    function handle(value: string | number) {
      if (typeof value === "string") {
        console.log(value.toUpperCase()); // TypeScript 知道 value 是字符串
      }
    }
    
    1
    2
    3
    4
    5

    # 5. 总结

    • 明确性: TypeScript 注解提供了变量、函数等的类型信息,增强了代码的可读性。
    • 类型安全性: 注解帮助捕获错误,减少运行时错误,提高代码的可靠性。
    • 灵活性: 泛型和类型保护使得代码更加灵活和可复用。

    理解 TypeScript 的注解可以帮助您编写更健壮的代码,通过准确的类型信息来减少潜在的错误。随着对类型系统的深入理解,您会发现编写和维护 TypeScript 代码变得更加高效和愉快。


在线编辑 (opens new window)
上次更新: 2025/02/25, 18:30:54
ts基础
ts泛型

← ts基础 ts泛型→

最近更新
01
showprocess用法
04-29
02
vue3中尖括号和冒号的使用细则
04-29
03
sd使用
02-22
更多文章>
🖥️

© 2025窝窝侠 💌 豫ICP备20005263号-2 🛀 Theme by 💝 Vdoing && 小胖墩er

  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×