TypeScript Interview Questions

TypeScript 面试题

2025年03月17日 | 阅读 22 分钟

下面列出了一些最常问的TypeScript 面试题及答案。

1) 什么是 TypeScript?

TypeScript 是由微软开发和维护的免费开源编程语言。它是 JavaScript 的强类型超集,可以编译为纯 JavaScript。它是一种用于应用程序规模 JavaScript 开发的语言。对于熟悉 C#、Java 和所有强类型语言的开发人员来说,TypeScript 非常容易学习和使用。

TypeScript 可以在任何浏览器、任何主机和任何操作系统上执行。TypeScript 不能直接在浏览器上运行。它需要一个编译器来编译并生成 JavaScript 文件。TypeScript 是ES6版本的 JavaScript,并添加了一些额外功能。


2) TypeScript 与 JavaScript 有什么区别?

TypeScript 与 JavaScript 的区别如下:

序号JavaScriptTypeScript
1它是由 Netscape 在 1995 年开发的。它是由 Anders Hejlsberg 在 2012 年开发的。
2JavaScript 源文件扩展名为 ".js"。TypeScript 源文件扩展名为 ".ts"。
3JavaScript 不支持 ES6。TypeScript 支持 ES6。
4它不支持强类型或静态类型。它支持强类型或静态类型特性。
5它只是一种脚本语言。它支持面向对象编程概念,如类、接口、继承、泛型等。
6JavaScript 没有可选参数功能。TypeScript 有可选参数功能。
7它是解释型语言,因此它在运行时突出显示错误。它会在开发过程中编译代码并突出显示错误。
8JavaScript 不支持模块。TypeScript 支持模块。
9在这个语言中,number 和 string 是对象。在这个语言中,number 和 string 是接口。
10JavaScript 不支持泛型。TypeScript 支持泛型。

要了解更多信息,请点击此处


3) 为什么我们需要 TypeScript?

我们需要 TypeScript 因为:

  • TypeScript 快速、简单,最重要的是易于学习。
  • TypeScript 支持面向对象编程特性,如类、接口、继承、泛型等。
  • TypeScript 在编译时提供错误检查功能。它会编译代码,如果发现任何错误,它会在脚本运行前突出显示错误。
  • TypeScript 支持所有 JavaScript 库,因为它也是 JavaScript 的超集。
  • TypeScript 通过继承支持代码重用。
  • TypeScript 使应用程序开发尽可能快速和简单,并且 TypeScript 的工具支持为我们提供了自动完成、类型检查和源代码文档。
  • TypeScript 支持最新的 JavaScript 功能,包括 ECMAScript 2015。
  • TypeScript 提供了 ES6 的所有好处,并且更具生产力。
  • TypeScript 支持静态类型、强类型、模块、可选参数等。

4) 列出 TypeScript 的一些特性?

TypeScript Interview Questions

要了解更多信息,请点击此处


5) 列出使用 TypeScript 的一些好处?

TypeScript 具有以下优点:

  • 它提供了可选静态类型的好处。在这里,TypeScript 提供了可以添加到变量、函数、属性等中的类型。
  • TypeScript 能够编译为可在所有浏览器上运行的 JavaScript 版本。
  • TypeScript 在开发过程中始终在编译时突出显示错误,而 JavaScript 在运行时才指出错误。
  • TypeScript 支持强类型或静态类型,而 JavaScript 不支持。
  • 它有助于代码结构化。
  • 它使用基于类的面向对象编程。
  • 它提供了出色的工具支持,带有 IntelliSense,可在添加代码时提供实时提示。
  • 它通过定义模块拥有命名空间概念。

6) TypeScript 有哪些缺点?

TypeScript 有以下缺点:

  • TypeScript 编译代码需要很长时间。
  • TypeScript 不支持抽象类。
  • 如果我们在浏览器中运行 TypeScript 应用程序,则需要一个编译步骤将 TypeScript 转换为 JavaScript。
  • Web 开发者已经使用了 JavaScript 几十年,而 TypeScript 并没有带来任何新的东西。
  • 要使用任何第三方库,必须有定义文件。并且并非所有第三方库都有可用的定义文件。
  • 类型定义文件的质量是一个问题,因为你如何确定定义是正确的?

7) TypeScript 有哪些不同的组成部分?

TypeScript 主要有三个组成部分。它们是:

TypeScript Interview Questions

语言

语言包含新语法、关键字、类型注解等元素,允许我们编写 TypeScript。

Compiler

TypeScript 编译器是开源的、跨平台的,并用 TypeScript 编写。它将用 TypeScript 编写的代码转换为等效的 JavaScript 代码。它对我们的 TypeScript 代码进行解析和类型检查,然后生成 JavaScript 代码。它还可以帮助将不同的文件连接成一个输出文件以及生成源映射。

语言服务

语言服务提供信息,帮助编辑器和其他工具提供更好的辅助功能,例如自动重构和 IntelliSense。

要了解更多信息,请点击此处


8) TypeScript 是谁开发的?目前的稳定版本是多少?

TypeScript 是由Anders Hejlsberg开发的,他也是 C# 语言开发团队的核心成员之一。TypeScript 于2012 年 10 月 1 日首次发布,版本号为0.8。它由 Microsoft 在Apache 2许可下开发和维护。它旨在用于大型应用程序的开发。

TypeScript 的当前稳定版本是3.2,于 2018 年 9 月 30 日发布。TypeScript 编译为可在支持 ECMAScript 2015 框架的任何浏览器上运行的简单 JavaScript 代码。它支持最新且不断发展的 JavaScript 功能。


9) 告诉我安装 TypeScript 的最低要求。或者,我们如何获取并安装 TypeScript?

可以使用 Node 和 npm (Node.js 包管理器) 来安装和管理 TypeScript。要安装 TypeScript,请先确保npm已正确安装,然后运行以下命令,该命令将 TypeScript 全局安装在系统上。

它会安装一个名为"tsc"的命令行工具,该工具将用于编译我们的 TypeScript 代码。请确保我们检查系统中安装的 TypeScript 版本。

安装 TypeScript 所需的步骤如下:

  1. 下载并运行 Node 的 .msi 安装程序。
  2. 输入命令 "node -v" 来检查安装是否成功。
  3. 在终端窗口中键入以下命令来安装 TypeScript:$ npm install -g typescript

要了解安装过程,请点击此处


10) 列出 TypeScript 中的内置类型。

内置数据类型也称为 TypeScript 中的原始数据类型。它们如下所示:

TypeScript Interview Questions

Number 类型:用于表示数字类型的值。TypeScript 中的所有数字都存储为浮点值。

语法: let identifier: number = value;

String 类型:表示存储为 Unicode UTF-16 代码的字符序列。我们通过将字符串字面量括在单引号或双引号中来在脚本中包含它们。

语法: let identifier: string = " ";

Boolean 类型:用于表示逻辑值。当我们使用布尔类型时,我们只得到 true 或 false 的输出。布尔值是一个真值,它指定条件是否为真。

语法: let identifier: bool = Boolean value;

Null 类型:Null 表示值为 undefined 的变量。无法直接引用 null 类型值本身。Null 类型没有用,因为我们只能为其分配 null 值。

语法: let num: number = null;

Undefined 类型:它是 undefined 字面量的类型。Undefined 类型表示所有未初始化的变量。它没有用,因为我们只能为其分配 undefined 值。这种内置类型是所有类型的子类型。

语法: let num: number = undefined;

Void 类型:void 是不返回任何类型值的函数的返回类型。它用于没有可用数据类型的地方。

语法: let unusable: void = undefined;

要详细了解 TypeScript 数据类型,请点击此处


11) 什么是 TypeScript 中的变量?如何在 TypeScript 中创建变量?

变量是存储位置,用于存储供程序引用和使用的值/信息。它充当程序中值的容器。它可以使用 var 关键字声明。它应在使用前声明。在 TypeScript 中声明变量时,应遵循某些规则:

  • 变量名必须是字母或数字。
  • 变量名不能以数字开头。
  • 变量名不能包含空格和特殊字符,下划线(_)和美元($)符号除外。

我们可以通过以下四种方式之一来声明变量:

  1. 在单个语句中声明类型和值。语法:var [identifier] : [type-annotation] = value;
  2. 在不带值的情况下声明类型。语法:var [identifier] : [type-annotation];
  3. 在不带类型的情况下声明其值。语法:var [identifier] = value;
  4. 不带值和类型声明。语法:var [identifier];

要详细了解,请点击此处。https://tpointtech.cn/typescript-variables


12) 如何编译 TypeScript 文件?

以下是在将 TypeScript 文件编译为 JavaScript 时使用的命令。

例如,编译 "Helloworld.ts"。

结果将是 helloworld.js


13) 是否可以将多个 .ts 文件合并到一个 .js 文件中?如果可以,如何实现?

是的,这是可能的。为此,我们需要添加--outFILE [OutputJSFileName] 编译选项。

上面的命令将编译所有三个".ts"文件,并将结果存储在单个"comman.js"文件中。在不提供输出文件名的情况下,如下面的命令:

那么,file2.tsfile3.ts将被编译,输出将放在file1.ts中。现在我们的 file1.ts 包含 JavaScript 代码。


14) 是否可以在 .ts 文件发生实时更改时自动编译 .ts 文件?

是的,可以通过使用 --watch 编译选项在 .ts 文件发生实时更改时自动编译 ".ts" 文件。

上面的命令首先将file1.ts编译为file1.js,并监视文件更改。如果检测到任何更改,它将再次编译文件。在这里,我们需要确保运行--watch选项时命令提示符不能关闭。


15) 什么是接口?请结合 TypeScript 进行解释。

接口是应用程序中充当契约的结构。它定义了类必须遵循的语法,这意味着实现接口的类必须实现其所有成员。它不能被实例化,但可以被实现它的类对象引用。TypeScript 编译器使用接口进行类型检查(也称为“鸭子类型”或“结构化子类型),以确定对象是否具有特定的结构。

语法

接口只声明方法和字段。它不能用于构建任何东西。接口无需转换为 JavaScript 即可执行。它们对运行时 JavaScript 没有影响。因此,它们唯一的目的是在开发阶段提供帮助。


16) 你对 TypeScript 中的类有什么理解?列出类的一些特性。

我们知道,TypeScript 是一种面向对象的 JavaScript 语言,支持类、接口等 OOP 特性。像 Java 一样,类是用于创建可重用组件的基本实体。它是一组具有共同属性的对象。类是创建对象的模板或蓝图。它是一个逻辑实体。"class" 关键字用于在 TypeScript 中声明类。

示例

类的特性是:

  1. 继承
  2. 封装
  3. 多态
  4. 抽象

17) 原生 JavaScript 支持模块吗?

不支持。目前,原生 JavaScript 不支持模块。要创建和使用 JavaScript 中的模块,我们需要一个外部工具,如 CommonJS。


18) TypeScript 支持哪些面向对象术语?

TypeScript 支持以下面向对象术语:

  • 模块
  • 接口
  • 继承
  • 数据类型
  • 成员函数

19) 如何在 TypeScript 中从子类调用基类构造函数?

super() 函数用于从子类调用父类或基类构造函数。


20) 如何在 TypeScript 中实现继承?

继承是一种机制,用于从另一个类获取类的属性和行为。它是 OOP 语言的重要方面,能够从现有类创建新类。继承其成员的类称为基类,继承这些成员的类称为派生类。

可以通过使用 extend 关键字来实现继承。我们可以通过以下示例来理解它。

要了解更多信息,请点击此处


21) 什么是 TypeScript 中的模块?

模块是一种强大的方式,用于创建相关变量、函数、类和接口等的组。它们可以在自己的作用域内执行,而不是在全局作用域中。换句话说,在模块中声明的变量、函数、类和接口不能直接在模块外部访问。

创建模块

可以使用export关键字创建模块,并使用import关键字在其他模块中使用。

要了解更多信息,请点击此处


22) 内部模块和外部模块有什么区别?

内部模块和外部模块的区别如下:

序号内部模块外部模块
1内部模块用于将类、接口、函数、变量逻辑地分组到一个单元中,并可以导出到另一个模块。外部模块对于隐藏模块定义的内部语句非常有用,并且只显示与声明变量相关的函数和参数。
2内部模块存在于 TypeScript 的早期版本中。但它们在最新版本的 TypeScript 中仍然可以通过命名空间来支持。在最新版本的 TypeScript 中,外部模块简称为模块。
3内部模块是其他模块(包括全局模块和外部模块)的本地或导出的成员。外部模块是使用外部模块名称引用的独立代码体。
4内部模块使用 ModuleDeclarations 声明,这些声明指定了它们的名称和主体。外部模块是作为包含至少一个 import 或 export 声明的单独源文件编写的。
5示例
module Sum {   
   export function add(a, b) {    
      console.log("Sum: " +(a+b));   
   }   
} 
示例
export class Addition{  
    constructor(private x?: number, private y?: number){  
    }  
    Sum(){  
        console.log("SUM: " +(this.x + this.y));  
    }  
}

要详细了解,请点击此处


23) 什么是 TypeScript 中的命名空间?如何在 TypeScript 中声明命名空间?

命名空间是一种用于逻辑分组功能的机制。命名空间用于维护 TypeScript 的遗留代码。它封装了共享某些关系的功能和对象。命名空间也称为内部模块。命名空间还可以包含接口、类、函数和变量,以支持一组相关功能。

注意:命名空间可以在多个文件中定义,并允许将每个文件保持为它们都定义在一个地方。这使得代码更易于维护。

创建命名空间的语法

要了解更多信息,请点击此处


24) 解释 TypeScript 中的装饰器?

装饰器是一种特殊的声明,可以应用于类、方法、访问器、属性或参数。装饰器本质上是函数,它们以@expression符号为前缀,其中 expression 必须求值为一个函数,该函数将在运行时使用有关被装饰声明的信息进行调用。

TypeScript 装饰器以声明式的方式提供添加注释和元数据到现有代码的功能。装饰器是为ES7提出的实验性功能。它已经被一些 JavaScript 框架使用,包括Angular 2。装饰器在未来的版本中可能会有所变化。

要启用对装饰器的实验性支持,我们必须在命令行或 tsconfig.json 文件中启用 experimentalDecorators 编译器选项。

命令行

tsconfig.json

要了解更多信息,请点击此处


25) 什么是 Mixins?

在 JavaScript 中,Mixins 是一种构建类的可重用组件的方法,通过组合更简单的部分类(称为 mixins)来实现。

这个想法很简单,与其让类 A 继承类 B 来获取其功能,不如让函数 B 接收类 A 并返回一个具有新增功能的类。函数 B 就是一个 mixin。


26) TypeScript 类中属性/方法的默认可见性是什么?

Public 是 TypeScript 类中属性/方法的默认可见性。


27) TypeScript 如何支持函数的可选参数,而在 JavaScript 中函数的每个参数都是可选的?

与 JavaScript 不同,如果我们尝试在没有提供其函数签名中声明的数量和类型的情况下调用函数,TypeScript 编译器将抛出错误。要解决此问题,我们可以使用问号 ('?') 来使用可选参数。这意味着可能收到也可能未收到值的参数可以附加一个 '?' 来将其标记为可选。

因此,arg1始终是必需的,而arg2是可选参数。

注意:可选参数必须跟在必需参数后面。如果我们想让arg1可选,而不是arg2,那么我们需要更改顺序,并将 arg1 放在 arg2 之后。

要了解更多信息,请点击此处


28) TypeScript 是否支持函数重载,而 JavaScript 不支持函数重载?

是的,TypeScript 支持函数重载。但实现方式有些奇怪。当我们执行 TypeScript 中的函数重载时,我们只能实现一个函数,但具有多个签名。

在上例中,前两行是函数重载声明。它有两个重载。第一个签名有一个 string 类型的参数,而第二个签名有一个 number 类型的参数。第三个函数包含实际实现,并有一个 any 类型的参数。Any 数据类型可以接受任何类型的数据。然后实现会检查所提供参数的类型,并根据提供参数的类型执行不同的代码。


29) 是否可以调试任何 TypeScript 文件?

是的,这是可能的。要调试任何 TypeScript 文件,我们需要 .js 源映射文件。所以用--sourcemap标志编译 .ts 文件以生成源映射文件。

这将创建file1.jsfile1.js.mapfile1.js的最后一行将是对源映射文件的引用。


30) 什么是 TypeScript 定义管理器 (TSD)?为什么我们需要它?

TypeScript Definition Manager (TSD) 是一个包管理器,用于直接从社区驱动的 DefinitelyTyped 存储库搜索和安装 TypeScript 定义文件。

假设我们想在 .ts 文件中使用一些 jQuery 代码。


现在,当我们尝试使用tsc编译它时,它会给出编译错误:找不到名称"$"。所以,我们需要告知 TypeScript 编译器"$"属于 jQuery。要做到这一点,TSD 就派上用场了。我们可以下载jQuery类型定义文件并将其包含在我们的.ts文件中。以下是执行此操作的步骤:

首先,安装 TSD。

在 TypeScript 目录中,通过运行以下命令创建一个新的 TypeScript 项目:

然后安装 jQuery 的定义文件。

上面的命令将下载并创建一个包含以 ".d.ts" 结尾的 jQuery 定义文件的新目录。现在,通过更新 TypeScript 文件来指向 jQuery 定义来包含定义文件。

现在,再次编译。这次将生成 js 文件而不会出现任何错误。因此,TSD 的需求帮助我们为所需的框架获取类型定义文件。


31) 什么是 TypeScript 的 Declare 关键字?

我们知道,并非所有 JavaScript 库/框架都有 TypeScript 定义文件,但我们希望在 TypeScript 文件中使用它们而不会出现任何编译错误。要做到这一点,我们使用 declare 关键字。declare 关键字用于外部声明和方法,在这些声明中我们想定义一个可能存在的变量。

例如,假设我们有一个名为 myLibrary 的库,它没有 TypeScript 定义文件,并且在全局命名空间中有一个名为 myLibrary 的命名空间。如果我们想在 TypeScript 代码中使用该库,我们可以使用以下代码:

TypeScript 运行时会将 myLibrary 变量分配为 any 类型。这里的问题是我们在设计时无法获得 Intellisense,但我们可以在代码中使用该库。


32) 如何从任何 .ts 文件生成 TypeScript 定义文件?

我们可以使用 tsc 编译器从任何 .ts 文件生成 TypeScript 定义文件。它将生成一个 TypeScript 定义,使我们的 TypeScript 文件可重用。


33) 什么是 tsconfig.json 文件?

tsconfig.json 文件是一个 JSON 格式的文件。在 tsconfig.json 文件中,我们可以指定各种选项来告知编译器如何编译当前项目。目录中存在 tsconfig.json 文件表示该目录是 TypeScript 项目的根目录。下面是一个示例 tsconfig.json 文件。

要了解更多信息,请点击此处


34) 解释 TypeScript 中的泛型?

TypeScript 泛型是一种工具,它提供了一种创建可重用组件的方式。它能够创建可以与各种数据类型而不是单一数据类型一起使用的组件。泛型在不损害性能或生产力的情况下提供类型安全。泛型允许我们创建泛型类、泛型函数、泛型方法和泛型接口。

在泛型中,类型参数写在开括号(<)和闭括号(>)之间,这使得它们成为强类型集合。泛型使用一种特殊的类型变量 <T> 来表示类型。泛型集合只包含相似类型的对象。

要了解更多信息,请点击此处


35) TypeScript 是否支持所有面向对象原则?

是的,TypeScript 支持所有面向对象原则。面向对象编程有四个主要原则:

  1. 封装,
  2. 继承,
  3. 抽象,和
  4. 多态。

36) 如何在 TypeScript 中检查 null 和 undefined?

通过使用松散检查,我们可以同时检查 null 和 undefined。

如果我们使用严格检查,它对于设置为 null 的值始终为 true,而对于 undefined 变量则不评估为 true。

示例

输出


37) 可以在后端使用 TypeScript 吗?如果可以,如何使用?

是的,我们可以在后端使用 TypeScript。我们可以通过以下示例来理解。在这里,我们选择 Node.js 并获得一些额外的类型安全以及语言带来的其他抽象。

  • 安装 TypeScript 编译器
  • TypeScript 编译器在 tsconfig.json 文件中获取选项。此文件决定在哪里放置构建的文件。
  • 编译 ts 文件
  • 运行

38) "interface" 和 "type" 语句之间有什么区别?

序号interfacetype
1接口声明总是引入一个命名的对象类型。类型别名声明可以为任何类型的类型引入名称,包括原始类型、联合类型和交叉类型。
2接口可以在 extends 或 implements 子句中命名。对象类型字面量的类型别名不能在 extends 或 implements 子句中命名。
3接口创建了一个到处使用的名称。类型别名不创建新名称。
4接口可以有多个合并声明。对象类型字面量的类型别名不能有多个合并声明。

39) 什么是 TypeScript 的外部声明 (Ambient Declarations)?何时使用它们?

外部声明告知编译器其他地方存在的实际源代码。如果这些源代码在运行时不存在并且我们尝试使用它们,那么它将无警告地中断。

外部声明文件就像文档文件。如果源代码发生变化,文档也需要保持更新。如果外部声明文件未更新,我们将收到编译器错误。

外部声明允许我们安全轻松地使用现有的流行 JavaScript 库,如 jquery、angularjs、nodejs 等。


40) 什么是 TypeScript Map 文件?

  • TypeScript Map 文件是保存有关我们原始文件信息的源映射文件。
  • .map 文件是源映射文件,它们保存了生成 JavaScript 代码与创建它的 TypeScript 源文件之间的映射信息。
  • 许多调试器可以消耗这些文件,因此我们可以调试 TypeScript 文件而不是 JavaScript 文件。

41) 什么是 TypeScript 中的类型断言?

类型断言在其他语言中类似于类型转换,但它不像 C# 和 Java 等语言那样执行类型检查数据重构。类型转换具有运行时支持,而类型断言对运行时没有影响。然而,类型断言纯粹由编译器使用,并向编译器提供关于我们希望如何分析代码的提示。

示例

要了解更多信息,请点击此处


42) TypeScript 中的 "as" 语法是什么?

as 是 TypeScript 中类型断言的附加语法。引入 as 语法的原因为原始语法(<type>)与 JSX 冲突。

示例

当 TypeScript 与 JSX 一起使用时,只允许使用 as 样式的断言。


43) 什么是 JSX?可以在 TypeScript 中使用 JSX 吗?

JSX 只是带有不同扩展名的 Javascript。Facebook提出了这个新扩展,以便他们能够区分 JavaScript 中 HTML 的 XML 样实现。

JSX 是一种可嵌入的XML 样语法。它旨在转换为有效的 JavaScript。JSX 因 React 框架而流行。TypeScript 支持直接嵌入、类型检查和将 JSX 编译为 JavaScript。

要使用 JSX,我们必须做两件事:

  • 将文件命名为.tsx扩展名
  • 启用jsx选项

44) 什么是 Rest 参数?

Rest 参数用于将零个或多个值传递给函数。它通过在参数前加上三个字符('...')来声明。它允许函数拥有可变数量的参数,而无需使用 arguments 对象。当参数数量不确定时,它非常有用。

Rest 参数的规则

  • 函数中只允许一个 Rest 参数。
  • 它必须是数组类型。
  • 它必须是参数列表中的最后一个参数。

要了解更多信息,请点击此处


45) 解释 TypeScript 中的 Enum?

Enums 或枚举是 TypeScript 数据类型,它允许我们定义一组命名常量。使用枚举可以更容易地记录意图,或创建一组不同的情况。它是一组相关的数值或字符串值。

示例


46) 解释相对和非相对模块导入。

非相对相对
非相对导入可以相对于 baseUrl 解析,或者通过路径映射解析。换句话说,我们在导入任何外部依赖项时使用非相对路径。
示例
import * as $ from "jquery";
import { Component } from "@angular/core";
相对导入可用于我们自己的模块,这些模块在运行时可以保证保持其相对位置。相对导入以 /、./ 或 ../ 开头。
示例
import Entry from "./components/Entry";
import {DefaultHeaders} from "../constants/http";

47) 什么是匿名函数?

匿名函数是没有命名标识符声明的函数。这些函数在运行时动态声明。匿名函数可以像标准函数一样接受输入并返回输出。匿名函数通常在其首次创建后无法访问。

示例


48) 什么是声明合并?

声明合并是编译器遵循的过程,用于合并两个或多个具有相同名称的单独声明。这个合并后的定义具有原始声明的特征。

最简单,也许最常见的声明合并类型是接口合并。在最基本的级别上,合并将两个声明的成员机械地合并到具有相同名称的单个接口中。

示例

这三个接口将合并创建一个单一的声明,如下所示:

注意:TypeScript 中并非所有合并都允许。目前,类不能与其他类或变量合并。


49) 什么是 TypeScript 中的方法重写?

如果子类(子类)与父类中声明的方法相同,则称为方法重写。换句话说,在派生类或子类中重新定义基类的方法。

方法重写的规则

  • 方法必须与父类中的方法同名
  • 方法必须与父类中的参数相同。
  • 必须存在 IS-A 关系(继承)。

示例


50) 什么是 Lambda/箭头函数?

TypeScript 的 ES6 版本提供了定义匿名函数的简写语法,即函数表达式。这些箭头函数也称为Lambda函数。Lambda 函数是没有名称的函数。箭头函数省略了 function 关键字。

示例

在上例中,?=?> 是lambda 运算符,(a + b) 是函数体,(a: number, b: number) 是内联参数。

要了解更多信息,请点击此处