TypeScript和Javascript之间的区别

如果你是网页开发的新手,或者只是 Javascript 开发,你可能会发现自己想知道TypeScript和Javascript之间的区别是什么?在本指南中,我将确切地解释什么是TypeScript,以及为什么它与 Javascript不同。如果你想开始你自己的TypeScript项目,我在这里写了一个关于设置你的第一个TypeScript项目的指南。

TypeScript与Javascript有何不同?#

当网络开始时,JavaScript是一种脚本语言,允许我们为网站添加交互性。Javascript是在10天内写成的,所以正如你可能预料的那样,它没有我们今天拥有的所有功能。

随着时间的流逝,Javascript的重要性只会越来越大。框架像jQuery,Mootools一样进化,然后是 React,Vue 和 Svelte。然后,Javascript也成为了Node.JS的后端语言。随着它的重要性增加,Javascript的所有怪癖,特殊性和缺失的功能变得更加明显。对于来自强类型语言的程序员来说,这些缺失的功能之一是类型系统。

什么是类型?

在 Javascript 中,类型是根据您编写代码的方式动态的。这与其他一些语言不同,在其他语言中,您必须明确提及所有内容的类型。在脚本中,它更容易:

let x = 5; // Type is Number
let y = 'string'; // Type is String
let z = {}; // Type is object

这实际上是一个很棒的功能。它使Javascript很容易进入想要快速创建东西的开发人员。不过,它有缺点。最主要的一点是,如果您与多个团队合作,复杂的系统,其中强制类型很重要,或者只是因为s而面临很多问题,那么它可能会成为您的应用程序的障碍而不是净积极因素。TypeError

TypeScript 尝试解决此问题。它唯一真正做的就是向Javascript添加类型,这意味着你必须更频繁地定义代码的类型。使用前面的示例,我们可以像这样定义变量的类型:

let x:number = 5; // Type is Number
let y:string = 'string'; // Type is String
let z:object = {}; // Type is object

不过,它并没有就此结束。例如,在 Javascript 中编写一个简单的函数可能如下所示:

let myFunction = (x, y) => {
    return x + y;
}

而 TypeScript 允许我们定义所有参数的类型以及函数的返回值:

let myFunction = (x:number, y:number):number => {
    return x + y;
}

因此,学习TypeScript与学习Javascript略有不同。如果您有兴趣,可以在此处了解有关TypeScript中类型的更多信息

TypeScript的功能#

  • 它是强类型的 – 如前所述,我们必须在TypeScript中定义类型,而在Javascript中则不定义类型。
  • 它仍然像Javascript一样工作 – 所有函数,方法和你习惯的一切仍然存在于TypeScript中。它只是添加了类型。
  • 它有一个编译步骤,并编译为Javascript – TypeScript不能在浏览器上运行。相反,你用类型编写代码,然后将它们编译成没有类型的普通Javascript。这意味着您在编译代码之前就知道代码已正确键入,之后它只是可以在Web上运行的普通Javascript。

为什么使用TypeScript?

人们和组织使用TypeScript的主要原因是因为它是类型安全的 – 你可以强力地键入所有代码,最终这会导致更少的错误和问题。当定义了函数的返回类型或变量的输入类型时,开发人员不会意外地用 来代替 。"true"true

是 TypeScript  优于 Javascript 吗?

TypeScript 并不比 Javascript更好 – 它只是使您能够在代码中定义类型。有时,您可能不需要它,而Typescript的主要缺点是编译时间。在 Javascript 中,代码在你编写后立即准备就绪,但在TypeScript中,它需要你将其编译为 Javascript。

将来,类型可能会以一种或另一种形式进入Javascript,这可能会删除此编译步骤。但是,就目前而言,这需要时间,如果您不必这样做,这可能不是您编写代码的首选方法。这是坚持使用Javascript的主要好处,但还有其他好处 – 对于小型应用程序,强键入代码可能也不会带来额外的好处。

因此,不要觉得你需要使用TypeScript – 使用任何对你的产品或组织有意义的东西。

结论#

如果你是类型脚本的新手,我在这里写了很多关于它的文章。这是一种很棒的语言,并且为Javascript没有的类型提供了很多安全性。TypeScript并不比 Javascript 更好,但如果你来自强类型背景,它可能更熟悉。如果您从事大型产品或与许多团队合作,它也可能是首选选项。选择适用于您的情况的工具集非常重要,但鉴于TypeScript的日益普及,学习TypeScript并没有什么坏处。