TypeScript 面试题


TypeScript 面试题

  1. 什么是 TypeScript 的优势?

    TypeScript 提供了静态类型检查、更好的工具支持以及更丰富的面向对象编程特性。它可以提高代码的可维护性、可读性和可靠性,并且可以在开发阶段捕获潜在的错误。

  2. 什么是类型断言(Type Assertion)?如何在 TypeScript 中使用类型断言?

    类型断言允许开发者手动指定变量的类型。在 TypeScript 中,可以使用尖括号语法或者 as 关键字进行类型断言。例如:

    typescript 复制代码
    let value: any = "Hello, TypeScript!";
    let length1: number = (<string>value).length; // 使用尖括号语法
    let length2: number = (value as string).length; // 使用 as 关键字
    ```
  3. 什么是可选属性和只读属性?如何在接口中定义它们?

    可选属性允许对象中的某些属性可以不必全部存在,而只读属性则表示属性值在创建后不能被修改。在 TypeScript 中,可以使用问号 ? 来定义可选属性,使用 readonly 关键字来定义只读属性。例如:

    typescript 复制代码
    interface Person {
      name: string;
      age?: number; // 可选属性
      readonly id: number; // 只读属性
    }
    
    let person: Person = { name: "Alice", id: 123 };
    person.age = 20; // 可选属性可以不指定
    person.id = 456; // 错误,只读属性不能修改
    ```
  4. 什么是命名空间(Namespace)?请举例说明如何在 TypeScript 中使用命名空间。

    命名空间是用来组织和封装代码的一种方式,它可以避免全局命名冲突。在 TypeScript 中,可以使用命名空间关键字 namespace 来定义命名空间。例如:

    typescript 复制代码
    // math.ts
    namespace MathUtils {
      export function add(x: number, y: number): number {
        return x + y;
      }
    }
    
    // app.ts
    let result = MathUtils.add(3, 5);
    console.log(result); // 输出:8
    ```
  5. TypeScript 中的类型别名和接口有什么区别?什么时候应该使用类型别名?

    类型别名(Type Alias)和接口(Interface)都可以用来描述类型,但它们有一些区别。接口创建了一个新的命名类型,而类型别名为现有类型提供了一个别名。通常在以下情况下应使用类型别名:

    • 当需要联合多个类型时,可以使用联合类型别名;
    • 当需要使用元组(Tuple)类型时,可以使用元组类型别名;
    • 当需要使用复杂的类型操作符(如联合类型、交叉类型等)时,可以使用类型别名。

    例如:

    typescript 复制代码
    type Status = "success" | "error";
    type Point = [number, number];
    type Shape = Square | Circle;
    
    interface Square {
      kind: "square";
      size: number;
    }
    
    interface Circle {
      kind: "circle";
      radius: number;
    }
    ```

相关推荐
BreezeJiang4 分钟前
闭包和 useState 是两个知识点?你可能只学了半条作用域链
前端·面试
2601_9583529014 分钟前
一款模块通吃15类语音产品?AN-93如何实现录音笔、门禁、IPC的快速适配
前端·人工智能·嵌入式硬件·回声消除·降噪处理
子兮曰16 分钟前
Bun v1.4.4 实测:2,025 个文件,bun fmt 2.6 秒跑完
前端·后端·bun
Liudef0616 分钟前
用 DeepSeek Search API 做一个干净的单文件搜索页面(附完整源码)
前端·人工智能·工具·搜索·deepseek
忆挽篱笙歌32 分钟前
进程替换函数与shenll命令行解释器
前端·javascript·算法
计算机魔术师35 分钟前
砸了2200亿美元还是不够用,AWS说2027年也卖完了
前端
2601_9653053935 分钟前
智慧农用的农业四情分别是什么
服务器·前端·人工智能
老徐聊GEO1 小时前
把“安徽“写进题面之后:多平台AI推荐名单的区域扰动测量(2026)
前端·人工智能·算法·geo优化
小冯不疯1 小时前
688 / 拼多多 / 淘特三类供货链路:从采购单到应付凭证的 4 段对账
javascript
moshuying1 小时前
DeppInfer系列之 - 矩阵、注意力与 GPU:拆解 DeepGEMM 与 FlashMLA
前端·javascript·面试