# TypeScript
> TypeScript发展至今,已经成为大型项目的标配。
## TypeScript定义
TypeScript 是微软推出的一种开源编程语言,设计的初衷就是为了帮助 JavaScript 的开发人员能像类似高级语言c#,Java那样编写代码,比如使用高级语言的强类型、面向对象、语法检查,代码编译等特点。
JavaScript 只是一个脚本语言,并非设计用于开发大型 Web 应用,TypeScript 设计目标是开发大型应用,它包含一个编译器,可以编译成纯 JavaScript,编译出来的 JavaScript 可以运行在任何浏览器上。
TypeScript扩展了JavaScript的语法,所以任何现有的JavaScript程序可以不加改变的在TypeScript下工作。
## 为什么会有TypeScript?
JavaScript 只是一个脚本语言,并非设计用于开发大型 Web 应用,JavaScript 没有提供类和模块的概念,而 TypeScript 扩展了 JavaScript 实现了这些特性。TypeScript 主要特点包括:
- TypeScript是微软推出的开源语言,使用 Apache 授权协议
- TypeScript是 JavaScript 的超集[超级就是扩展],增加了可选类型、类和模块
- TypeScript支持类型系统且拥有类型推断
- TypeScript支持ECMAScript6 标准,并支持输出ECMAScript3/5/6标准的纯JavaScript代码
- TypeScript支持ECMAScript未来提案中的特性,比如异步功能和装饰器
- TypeScript扩展了 JavaScript 的语法,因此已有的 JavaScript 代码可直接与 TypeScript 一起运行无需更改
- TypeScript成为一款跨平台的工具,支持所有的浏览器、主机和操作系统
## TypeScript优点与缺点
1> TypeScript 的优点
- 是Microsoft 推出的开源语言,使用 Apache 授权协议
- 用于开发大型的应用
- 增加了代码的可读性和可维护性
在编译阶段就可以发现大部分错误
跨浏览器、跨操作系统、跨主机
支持ECMAScript6 标准,并支持输出ECMAScript3/5/6标准的纯JavaScript代码
2> TypeScript 的缺点
有一定的学习成本,需要理解接口(Interfaces)、泛型(Generics)、类(Classes)、枚举类型(Enums)等前端工程师可能不是很熟悉的概念
短期可能会增加一些开发成本,毕竟要多写一些类型的定义,不过对于一个需要长期维护的项目,TypeScript 能够减少其维护成本
集成到构建流程需要一些工作量
## TypeScript安装
- 通过 Node.js 包管理器安装 TypeScript(npm)
- `npm install -g typescript`
- 检测:tsc -v
- 安装Visual Studio的TypeScript插件:
- 打开命令行,输入npm i -g typescript,全局安装typescript,若已经安装则忽略
- 进入项目目录,启动命令行并在命令行环境下键入tsc -init进行初始化,你会发现根目录下多了tsconfig.json的文件,该文件记录编译成JS的选项
- 运行tsc xxx.ts即可
若有报错:c:users\AppData\Roaming\npm\demo.ts
解决方法:【管理员身份打开vscode】
执行:get-ExecutionPolicy,显示Restricted,表示状态是禁止的;
再执行:set-ExecutionPolicy RemoteSigned;修改为非禁止的,
后执行get-ExecutionPolicy,就显示RemoteSigned;