MST

星途 面试题库

面试题:JavaScript与TypeScript类型系统在函数参数和返回值类型处理上的差异

假设你要编写一个函数,该函数接收两个数字参数并返回它们的和。请分别用JavaScript和TypeScript实现这个函数,并详细说明在TypeScript中如何精确地定义函数参数和返回值的类型,以及这种类型定义在代码维护和可读性方面的优势。同时,说明在JavaScript中没有明确类型定义时,可能会出现哪些潜在的问题。
46.9万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试

JavaScript实现

function add(num1, num2) {
    return num1 + num2;
}

TypeScript实现

function add(num1: number, num2: number): number {
    return num1 + num2;
}

TypeScript类型定义的优势

  1. 代码维护:在大型项目中,明确的类型定义使得代码结构更清晰。当函数参数或返回值的类型需要修改时,TypeScript编译器能迅速指出哪些地方受影响,方便开发者进行更新。例如,如果函数原本接收两个number类型参数,现在需要接收string类型参数并进行字符串拼接,TypeScript会在编译阶段报错,提醒开发者修改所有调用该函数的地方,避免运行时错误。
  2. 可读性:类型定义让代码的意图一目了然。阅读代码的人无需查看函数内部实现,就能知道函数期望接收什么样的参数以及会返回什么类型的值。比如function add(num1: number, num2: number): number,从定义就清晰知道该函数接收两个数字参数并返回一个数字。

JavaScript无明确类型定义的潜在问题

  1. 运行时错误:JavaScript是弱类型语言,函数调用时传入错误类型的参数不会在语法层面报错。例如add('1', 2),函数本意是进行数字相加,但传入了字符串和数字,在运行时可能导致意外结果(如字符串拼接),这种错误只有在运行时才能发现,增加了调试成本。
  2. 代码理解困难:没有类型定义,阅读代码的人很难直观了解函数参数和返回值的类型。在大型项目中,这会增加理解代码逻辑和进行后续维护的难度。