面试官最喜欢问的TypeScript面试题

537 阅读3分钟

WechatIMG588.png 当面试涉及 TypeScript (TS) 的问题时,通常会考察 TypeScript 的基本概念、高级特性以及如何在项目中应用的了解。以下是一些可能涉及的 TS 面试题,以及它们的详细解释:

  1. 什么是 TypeScript?它与 JavaScript 有什么区别?

    TypeScript 是一种由 Microsoft 开发的开源编程语言,它是 JavaScript 的一个超集,可以编译成纯 JavaScript。与 JavaScript 相比,TypeScript 引入了静态类型、类、接口等概念,以提供更好的代码可维护性、类型检查和开发体验。

  2. TypeScript 的优势是什么?

    • 静态类型检查: TypeScript 允许声明变量、函数等的类型,从而在开发过程中捕获潜在的类型错误。
    • 代码可读性: 明确的类型声明使代码更易读懂和维护。
    • 智能感知: TypeScript 提供了更好的 IDE 智能感知,增强了代码自动完成和提示功能。
    • 重构支持: 类型信息可以帮助 IDE 在重构代码时更准确地识别变量和函数引用。
    • 代码提示: 使用 TypeScript,您可以在开发过程中获得更多的代码提示和文档。
  3. TypeScript 中的基本类型有哪些?

    TypeScript 支持以下基本类型:

    • number: 数字类型
    • string: 字符串类型
    • boolean: 布尔类型
    • nullundefined: 用于表示为空值
    • void: 表示没有返回值的函数
    • any: 表示任意类型
    • object: 表示非原始类型的类型
    • array: 数组类型
    • tuple: 元组类型
    • enum: 枚举类型
  4. 什么是类型断言?如何使用类型断言?

    类型断言(Type Assertion)是一种在编译时告诉编译器变量的实际类型的方式。在 TypeScript 中,类型断言可以使用尖括号语法或者 as 关键字。

    // 使用尖括号语法
    let someValue: any = "hello";
    let strLength: number = (<string>someValue).length;
    
    // 使用 as 关键字
    let someValue: any = "hello";
    let strLength: number = (someValue as string).length;
    
  5. 什么是接口?如何在 TypeScript 中使用接口?

    接口(Interfaces)是一种用于定义对象的结构和类型的方式。在 TypeScript 中,接口可以用来声明对象的属性和方法。示例:

    interface Person {
      name: string;
      age: number;
    }
    
    let person: Person = {
      name: "John",
      age: 25
    };
    
  6. 什么是泛型?如何在 TypeScript 中使用泛型?

    泛型(Generics)是一种在编写可重用、灵活的代码时使用的工具。在 TypeScript 中,泛型可以用来创建适用于多种类型的函数、类和接口。示例:

    function identity<T>(arg: T): T {
      return arg;
    }
    
    let output = identity<string>("hello");
    
  7. 如何在 Vue 3 中使用 TypeScript?

    在 Vue 3 中,可以使用 <script lang="ts"> 标签来编写 TypeScript 代码。您可以为组件的数据、方法、生命周期钩子等明确指定类型,并在组件定义中使用 TypeScript 的高级特性。详细内容可以参考前面我提供的 "TS 在Vue3中的使用" 部分。

这些问题和答案涵盖了 TypeScript 的一些基本概念和应用,当然还有更多更复杂的问题和主题可以在 TypeScript 面试中涉及,具体取决于面试官的要求和深度。