文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
一、简介
1.1 什么是 TypeScript
TypeScript
是JavaScript
的一个超集,主要提供了类型系统和对ES6
的支持TypeScript
是由微软开发的一款开源的编程语言TypeScript
是Javascript
的超级,遵循最新的ES6
、Es5
规范。TypeScript
扩展了JavaScript
的语法TypeScript
更像后端java
、C#
这样的面向对象语言可以让js
开发大型企业项目
1.2 为什么选择 TypeScript
Typescript
和 es6
、 es5
关系
TypeScript 增加了代码的可读性和可维护性
- 类型系统实际上是最好的文档,大部分的函数看看类型的定义就可以知道如何使用了
- 可以在编译阶段就发现大部分错误,这总比在运行时候出错好
- 增强了编辑器和
IDE
的功能,包括代码补全、接口提示、跳转到定义、重构等
TypeScript 非常包容
TypeScript
是JavaScript
的超集,.js
文件可以直接重命名为.ts
即可- 即使不显式的定义类型,也能够自动做出类型推论
- 可以定义从简单到复杂的几乎一切类型
- 即使
TypeScript
编译报错,也可以生成JavaScript
文件 - 兼容第三方库,即使第三方库不是用
TypeScript
写的,也可以编写单独的类型文件供TypeScript
读取
TypeScript 拥有活跃的社区
- 大部分第三方库都有提供给
TypeScript
的类型定义文件 Google
开发的Angular2
就是使用TypeScript
编写的TypeScript
拥抱了ES6
规范,也支持部分ESNext
草案的规范- 最新的
Vue
、React
也可以集成TypeScript
TypeScript 的缺点
- 有一定的学习成本,需要理解接口(
Interfaces
)、泛型(Generics
)、类(Classes
)、枚举类型(Enums
)等前端工程师可能不是很熟悉的概念 - 短期可能会增加一些开发成本,毕竟要多写一些类型的定义,不过对于一个需要长期维护的项目,
TypeScript
能够减少其维护成本 - 集成到构建流程需要一些工作量
- 可能和一些库结合的不是很完美
1.3 安装 TypeScript
typescript 安装
npm i typescript -g
全局安装完成后,我们新建一个 hello.ts
的 ts
文件
// hello.ts 内容 let a = "poet"
接下来我们在命令行输入 tsc hello.ts
来编译这个 ts
文件,然后会在同级目录生成一个编译好了的 hello.js
文件
// hello.js 内容 var = "poet"
那么我们每次都要输 tsc hello.ts
命令来编译,这样很麻烦,能否让它自动编译?答案是可以的,使用 vscode
来开发,需要配置一下 vscode
就可以。
首先我们在命令行执行 tsc --init
来生成配置文件,然后我们在目录下看到生成了一个 tsconfig.json
文件
这个 json
文件里有很多选项
target
是选择编译到什么语法module
则是模块类型outDir
则是输出目录,可以指定这个参数到指定目录
更多细节 https://zhongsp.gitbooks.io/typescript-handbook/content/doc/handbook/tsconfig.json.html
接下来我们需要开启监控了,在 vscode
任务栏中
1.4 Hello TypeScript
将以下代码复制到 hello.ts
中
function sayHello(person: string) { return 'Hello, ' + person; } let user = 'poetries'; console.log(sayHello(user));
tsc hello.ts
//这时候会生成一个编译好的文件 hello.js: function sayHello(person) { return 'Hello, ' + person; } var user = 'poetries'; console.log(sayHello(user));
TypeScript
中,使用 :
指定变量的类型, :
的前后有没有空格都可以
TypeScript
只会进行静态检查,如果发现有错误,编译的时候就会报错TypeScript
编译的时候即使报错了,还是会生成编译结果,我们仍然可以使用这个编译之后的文件
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论