前端开发系列040-基础篇之TypeScript简单介绍
一、TypeScript语言简单说明
简单说明
TypeScript
是微软2012年推出的一种编程语言,属于 JavaScript 的超集,可以编译为 JavaScript 执行。它最大特点是强大的类型系统和对ES6的支持,TypeScript托管于GitHub上面。
TypeScript代码,通过编译可以转换为纯正的 JavaScript代码,且编译出来的 JavaScript代码能够运行在任何浏览器上。TypeScript 的编译工具也可以运行在任何服务器和任何系统上。
设计目标
TypeScript从一开始就提出了自己的设计目标,主要如下:
遵循当前以及未来出现的ECMAScript规范
。- 为大型项目提供构建机制(通过Class 、接口和模块等支撑)。
- 兼容现存的JavaScript代码,即任何合法的JavaScript程序都是合法的typeScript程序。
- 对于发行版本的代码没有运行开销。(使用过程可以简单划分为程序设计阶段和执行阶段)。
- 成为跨平台的开发工具,TypeScript使用Apache作为开源协议,且能够在所有主流的操作系统上安装和执行。
TypeScript的优势
❏ 拥有活跃的社区支持和生态
❏ 增加了代码的可读性和可维护性
❏ 拥抱 ES6 规范,也支持ES7 草案的规范
❏ TypeScript本身非常包容,兼容所有现行的JavaScript代码
TypeScript的劣势
❏ 短期投入到工作可能增加开发成本
❏ 集成到自动构建流程中需要额外的工作量
❏ 学习需要成本,需要理解接口、Class、泛型等知识
关于TypeScript更多信息,请参考TypeScript官网和TypeScript中文网站或TypeScript Github托管仓库。
二、开发环境和工具支持
命令行工具
安装命令:$ npm install -g typescript
-g表示全局安装,上面的命令执行后会在全局环境下安装 tsc 命令。
查看版本信息命令:$ tsc --version
可以通过$ tsc --help
来查看tsc使用帮助,通过$ tsc --version
命令来查看tsc版本验证是否安装成功,当前最新的版本为Version 2.9.1
,安装成功后我们就可以在任何地方来执行 tsc 命令了。
我们可以通过在命令行中输入$ tsc xxx.ts
命令来把文件编译为JavaScript文件,上述命令中xxx为对应文件的名称,编译完成后将得到xxx.js文件。
编辑器使用
主流的编辑器都支持 TypeScript
。下面列出推荐的编辑器(点击获取编辑器或IDE对TypeScript的支持)
Atom 21世纪黑客文本编辑器(拥有众多强大插件)
WebStorm 强大的前端开发编辑器
Visual Studio Code 内置了TypeScript支持,且本身也由TypeScript实现。
三、TypeScript组件
TypeScript语言内部被划分为三层,每层又被一次划分为子层或者是组件。
TypeScript语言内部的每一层都有自己不同的用途。
语言层:实现所有TypeScript的语言特性。
编译层:执行编译和类型检查操作,并把代码转换为JavaScript。
语言服务层:生成信息以帮助编辑器或其它开发工具提供更好的辅助特性。
前端开发系列040-基础篇之TypeScript简单介绍的更多相关文章
- openresty开发系列13--lua基础语法2常用数据类型介绍
openresty开发系列13--lua基础语法2常用数据类型介绍 一)boolean(布尔)布尔类型,可选值 true/false: Lua 中 nil 和 false 为"假" ...
- 从0到1用react+antd+redux搭建一个开箱即用的企业级管理后台系列(基础篇)
背景 最近因为要做一个新的管理后台项目,新公司大部分是用vue写的,技术栈这块也是想切到react上面来,所以,这次从0到1重新搭建一个react项目架子,需要考虑的东西的很多,包括目录结构.代码 ...
- 前端开发:css基础知识之盒模型以及浮动布局。
前端开发:css基础知识之盒模型以及浮动布局 前言 楼主的蛮多朋友最近都在学习html5,他们都会问到同一个问题 浮动是什么东西? 为什么这个浮动没有效果? 这个问题楼主已经回答了n遍.今天则是把 ...
- ESP8266开发之旅 基础篇① 走进ESP8266的世界
授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...
- ESP8266开发之旅 基础篇② 如何安装ESP8266的Arduino开发环境
授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...
- ESP8266开发之旅 基础篇③ ESP8266与Arduino的开发说明
授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...
- openlayers5-webpack 入门开发系列一初探篇(附源码下载)
前言 openlayers5-webpack 入门开发系列环境知识点了解: node 安装包下载webpack 打包管理工具需要依赖 node 环境,所以 node 安装包必须安装,上面链接是官网下载 ...
- leaflet-webpack 入门开发系列一初探篇(附源码下载)
前言 leaflet-webpack 入门开发系列环境知识点了解: node 安装包下载webpack 打包管理工具需要依赖 node 环境,所以 node 安装包必须安装,上面链接是官网下载地址 w ...
- 使用Xamarin开发即时通信系统 -- 基础篇(大量图文讲解 step by step,附源码下载)...
如果是.NET开发人员,想学习手机应用开发(Android和iOS),Xamarin 无疑是最好的选择,编写一次,即可发布到Android和iOS平台,真是利器中的利器啊!而且,Xamarin已经被微 ...
- 【Windows10 IoT开发系列】配置篇
原文:[Windows10 IoT开发系列]配置篇 Windows10 For IoT是Windows 10家族的一个新星,其针对不同平台拥有不同的版本.而其最重要的一个版本是运行在Raspberry ...
随机推荐
- 安装yml 与 wget
一.备份/etc/yum.repos.d/CentOS-Base.repo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-B ...
- kettle介绍-Step之Abort
Abort中止介绍 中止步骤用于读取指定行数之后停止读取剩余行数,可以用于调试转换 Step Name:步骤的名称,在单一的转换中,名称必须唯一 Abort threshold:指定行数,转换读取到指 ...
- App自动化的元素定位
一.Appium定位步骤 打开appium,输入本地IP,点击启动服务器 1.点击启动检查器会话 2.配置所需功能,点击启动会话 二.App页面元素 App页面元素分为布局和控件两种 1.布局 Fra ...
- easy-query隐式Group革命性OLAP优化JAVA下最强查询ORM没有之一子查询合并
easy-query JAVA下最强查询ORM没有之一的任意子查询合并革命性OLAP优化 前言 对于大部分OLTP而言的查询市面上常见的orm已经能很好的处理,只要建立好对象关系那么就可以非常简单的实 ...
- 支持命令行输入中文(例如redis-cli输入中文)
修改 cmd 控制台默认代码页编码的几种方法[GBK.UTF-8]_FKNIGHT 的博客-CSDN博客_修改cmd编码 1.进入redis-cli.exe所在文件夹 2.在路径栏输入cmd回车 3. ...
- heapdump敏感信息提取工具-heapdump_tool(二),附下载链接。
heapdump敏感信息查询工具,例如查找 spring heapdump中的密码明文,AK,SK等 下载链接: heapdump_tool下载链接:heapdump_tool下载 声明: 此工具 ...
- 【经验】Win11的Ubuntu虚拟机启动虚拟化|此平台不支持虚拟化的 Intel VT-x/EPT(方案汇总+自己的解决方案)
我开虚拟化是为了在虚拟机中运行VirtualBox,如果不开CPU虚拟化,会报错VBoxManage error: VT-x is not available (VERR_VMX_NO_VMX). 文 ...
- 信息资源管理综合题之“如何利用PKI实现身份认证和抗抵赖和防篡改等安全措施 ”
一.A企业在网上招标采购某种原材料,B是某个参与招标供应商 1.请讨论如何利用PKI(公钥基础设施),实现A企业接收B报价过程的身份认证.抗抵赖和防篡改等安全措施 二.答案 1.请讨论如何利用PKI( ...
- Java 实现文件和base64字符串互转
项目中遇到需要将图片转成base64编码的字符串的需求,但是,考虑到扩展性,写了一个可以转换任务类型文件的方法.需要引入的包: <dependency> <groupId>co ...
- MySQL事务:工作原理与实用指南
MySQL事务:工作原理与实用指南 在数据库操作中,事务是保证数据一致性的重要机制.本文将深入探讨 MySQL 事务的特性.隔离级别以及实际应用场景,帮助你更好地理解和使用事务. 一.什么是事务? 事 ...