1.4 开始第一个TypeScript文件
在TypeScript开发环境搭建完成后,就可以正式进入TypeScript程序开发了。本节通过创建一个简单的TypeScript程序让读者首先从感性上直观地了解TypeScript的编码、编译和运行基本过程。
按照惯例,学习一门新的语言,第一个程序往往都是HelloWorld。我们也遵循这样的习惯,定义一个helloWorld函数,让TypeScript打印出“Hello, My First TypeScript”。
1.4.1 选择TypeScript编辑器
工欲善其事,必先利其器。虽然可以用任何文本编辑器进行TypeScript程序的开发,但是借助强大的编辑器既可以提高开发效率,也可以通过类型检测等手段保证代码质量。从TypeScript官网可以看出编辑器还是比较多的,如图1.12所示。
图1.12 TypeScript常用的编辑器
Visual Studio 2017/2015安装所需空间比较大,比较消耗电脑资源,我们也可以选择微软的开源轻量级编辑器Visual Studio Code来开发,而且Visual Studio Code是跨操作系统的,不但可以在Window操作系统上进行程序开发,也可以在Linux和Mac中进行开发。
微软在2015年4月30日的Build开发者大会上正式宣布了Visual Studio Code项目,一个运行于Mac OS X、Windows和Linux之上的,针对编写现代Web和云应用的跨平台源代码编辑器。Visual Studio Code对Web开发的支持尤其好,同时支持多种主流语言,例如C#、Java、PHP、C++、JavaScript和TypeScript等。
在网站https://code.visualstudio.com/download中可以下载安装文件,这里下载的是Window 64位1.31.1版本。下载完成后双击VSCodeUserSetup-x64-1.31.1.exe进行安装,如图1.13所示。
图1.13 Visual Studio Code 安装界面
按照向导操作即可,最后完成Visual Studio Code的安装。
提示
Visual Studio Code默认情况下是不包含TypeScript语言的,但可以通过安装插件来开发TypeScript,同时Visual Studio Code通过插件还支持C#、Java和PHP等语言。
对于单个文件而言,用在线的编辑器进行编码会更加方便,在TypeScript官网上有一个练习(Playground)链接,即http://www.typescriptlang.org/play/index.html,具体界面如图1.14所示。
图1.14 在线TypeScript Playground 界面
提示
TypeScript Playground只能编写单个文件。使用它本地无须安装任何TypeScript环境。
由图1.14可以看出,在左边的区域是TypeScript脚本,其中【编译项】按钮可以配置一些编译选项。当修改TypeScript脚本时,右边会自动转译成对应的JavaScript代码。当单击右边的【运行】按钮时,即可执行右边生成的JavaScript代码。
本书中前几章的演示代码只要是单文件的形式都可以在TypeScript官网上Playground提供的在线编辑器上运行。
1.4.2 编写TypeScript文件
当Visual Studio Code(VSCode)完成安装后,双击桌面快捷方式打开VSCode编辑器,在【File】菜单下单击【New File】创建一个新文件,并保存为helloworld.ts。
TypeScript编码有一些指导规则,函数命名采用camelCase命名规则,也就是首字母小写、其他单词首字母大写。文件helloworld.ts的内容如代码1-2所示。
【代码1-2】 helloWorld函数:helloworld.ts
01 /** 02 * 第一个TS程序(注释用于代码提示) 03 * @param <msg 字符串类型> 04 * @return(字符串) 05 */ 06 function helloWorld(msg:string):string{ 07 return "Hello, " + msg; 08 } 09 let msg = "My First TypeScript"; 10 document.body.innerHTML = helloWorld(msg);
从上述代码中可以看出,helloWorld的函数上用/**...*/写了一段注释。TypeDoc可以自动根据写在/** ... */之间的注释生成api文档。在Visual Studio Code中打开helloworld.ts,如图1.15所示。
图1.15 Visual Studio Code编辑界面
1.4.3 编译TypeScript文件
前面提到,TypeScript文件需要经过编译器编译后转成原生JavaScript代码才能执行。因此,为了运行helloworld.ts中的代码,需要对helloworld.ts文件进行编译。这里用Windows命令行工具调用tsc命令编译helloworld.ts,命令如下:
tsc helloworld.ts
编译成功后,会在helloworld.ts同一个目录下生成一个helloworld.js文件,内容如代码1-3所示。
【代码1-3】 helloworld.ts编译后代码:helloworld.js
01 /** 02 * 第一个TS程序 03 * @param <msg> 04 * @return(string) 05 */ 06 function helloWorld(msg) { 07 return "Hello, " + msg; 08 } 09 var msg = "My First TypeScript"; 10 document.body.innerHTML = helloWorld(msg);
从代码1-3可以看出,TypeScript代码和生成的JavaScript代码很相似。
提示
在Visual Studio Code中需要经过配置才能自动进行TypeScript文件编译。
当然也可以同时编译多个.ts文件,语法如下:
tsc file1.ts, file2.ts
tsc常用编译参数如表1.3所示。
表1.3 tsc 常用编译参数
1.4.4 在网页中调用TypeScript文件
我们编写的helloworld.ts代码如何在浏览器里面运行呢?一般来说,浏览器不能直接嵌入TypeScript文件,而是嵌入TypeScript文件编译后对应的JavaScript文件。下面创建一个index.html来作为容器,将编译好的helloworld.js引入。index.html具体内容如代码1-4所示。
【代码1-4】调用helloworld.ts生成的helloworld.js文件:index.html
01 <!DOCTYPE html> 02 <html lang="en"> 03 <head> 04 <meta charset="UTF-8"> 05 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 06 <meta http-equiv="X-UA-Compatible" content="ie=edge"> 07 <title>index</title> 08 </head> 09 <body> 10 <!-- 引入文件 --> 11 <script src="helloworld.js" ></script> 12 </body> 13 </html>
用浏览器打开index.html,可以看到页面上打印出“Hello,My First TypeScript”的文本信息,界面如图1.16所示。
图1.16 index.html运行界面
提示
虽然通过动态编译技术可以在浏览器中直接嵌入TypeScript文件,但是一般不建议这么做。