译者 | 布加迪
审校 | 重楼
JavaScript最初于1995年发布,经历短短的发展阶段后,已成为许多网站和应用程序不可或缺的一部分。如今,JavaScript在客户端应用程序和服务器端应用程序中都占有一席之地。尽管这些年来JavaScript发生了许多变化,但开发人员仍然需要众多特性。
TypeScript是一种扩展JavaScript的脚本语言,提供了许多期待已久的特性。类型注释、自定义类型和接口都是主要组件,还有提高生产力的更好工具。
为什么要转换?
面对重大项目,转换语言可能会带来压力。对考虑这项任务的任何人来说值得庆幸的是,将一个项目从JavaScript移植到TypeScript的过程却很简单。
作为一种主要的编程语言,JavaScript在过去几年越来越受欢迎。最初只用于网站的前端脚本,但Node.js的发布将JavaScript引入到服务器端,帮助提升了人气。
虽然JavaScript最近变得越来越流行,但最新发现:ES6依然缺少很多特性。对于许多开发人员来说,这些缺失的特性限制了JavaScript这种语言的有用性。
TypeScript旨在纠正这些问题,为此用额外的特性包装JavaScript,然后转译用户代码。一种具有JavaScript易用性和可用性的类型安全语言由此诞生。
目前已经有几个工具和框架对TypeScript提供全面支持。长期以来,Angular一直使用TypeScript,连React也有实现TypeScript的方法。
TypeScript就像JavaScript增强版
TypeScript实现了开发人员经常对JavaScript请求的许多特性。TypeScript以它实现的完整类型系统命名,包括类型检查、安全性和隐式类型等特性。TypeScript甚至允许您定义和使用自定义命名空间。
TypeScript还包含接口、枚举和类型推断。TypeScript保留了对来自最新JavaScript实现的特性以及旧特性的支持,还添加了一套新特性。
总的来说,TypeScript致力于创建一个更安全的开发过程,辅以更强大的工具以帮助码农。
它鼓励使用类型安全的代码
TypeScript使用内置的类型检查系统来验证变量类型。它包括一组标准类型,可以选择定义自己的类和类型。它可以显式声明类型,也可以根据赋值推断类型。
TypeScript有几种标准的数据类型,包括字符串、数字、布尔值和元组。还有变量类型,比如unknown和any,它们允许您使用弱类型代码。
TypeScript的类型推断允许您通过让TypeScript的转译器处理标准的JavaScript代码,对这类代码甚至执行类型检查。
转译使它易于使用
从开发人员的角度来看,TypeScript最好的特性之一就是它输出的是常规的JavaScript。您可以通过名为转译的过程来运行TypeScript代码,这个过程类似编译。
转译的结果不是可执行文件,而是使用代码原始语言以外的语言编写的脚本。
TypeScript代码被转译成JavaScript,然后您可以在服务器或客户端上运行。这使您可以快速轻松地编写几乎可以在任何平台上运行的代码。
TypeScript帮助开发人员提高生产力
为JavaScript添加类型不仅允许代码安全运行,还为开发人员提供了简化编码的工具。大多数现代IDE都提供TypeScript支持,允许像IntelliSense这样的代码补全工具为代码提供额外上下文。它还可以在您编码时提供类型检查功能,帮助您更迅速地揪出错误。
此外,TypeScript额外的数据结构和语法旨在提高代码的可读性。这些特性使用户更快速更轻松地创建高质量代码,并及早发现潜在问题。
如何移植代码?
如果您在开始着手全新的项目,创建新的TypeScript项目相当简单。然而,将一个已有的项目转换成TypeScript就有点复杂了。
在大多数正常情况下,将一个项目从一种语言转换成另一种语言可能令人望而生畏。然而,由JavaScript转换成TypeScript异常简单。
TypeScript作为JavaScript的超集
TypeScript被认为是JavaScript的超集。这意味着TypeScript添加了额外的语法和功能,并没有改变或删除其底层的核心功能。
对于开发人员来说,这意味着任何在JavaScript中正常运行的代码都会自动在TypeScript中正确运行。不管这个脚本是用NodeJS编写的Web服务器,还是一组用于网页的前端脚本,转换过程都非常简单。
在安装TypeScript转译器之后,您可以创建一个简单的tsconfig.json文件,内容如下:
{
"compilerOptions": {
"outDir": "./build",
"allowJs": true,
"target": "es5"
},
"include": ["./src/**/*"]
}
将所有适用的文件移到src目录并运行转译器。这将在build目录中创建并生成JavaScript文件。
这些快速而简单的改变可将标准的JavaScript项目转换成TypeScript项目。此后,您可以随意使用TypeScript提供的新特性,可以在变量上标注类型、实现自定义类型和定义接口。
在每次转译之后,您可以根据需要使用来自build目录的输出,只需将文件添加到任何项目中。转译器将对标准JavaScript进行类型检查,并将新特性转换成有效的ES5脚本。
从JS转换成TS,您需要知道什么?
将一个项目从JavaScript转换成TypeScript的过程非常简单。转换就像切换目录结构、添加配置文件和安装转译器一样简单。
然而,从新语言中获得所有好处可能是更漫长的项目。虽然TypeScript可以推断出项目中每个变量的类型,但它们应该被显式声明。回顾一番,为项目添加自定义类型、添加适当的注释和创建接口,这可能非常耗时。
然而,把这些特性添加到项目将便于您获得适当的类型检查和扩展工具所带来的好处。大型项目构建起来将更快速更轻松,您可以更早识别错误,而新开发人员将更容易阅读您的代码。
原文标题:How to Port Your JavaScript Program to TypeScript,作者:Seth M. Thomas