01-TypeScript概述
本篇文章向大家介绍新的TypeScript客户端脚本语言,主要涉及两个方面,一是传统JavaScript语言的弱点,二是TypeScript语言的优势。
一.JavaScript的弱点
1.弱类型,缺乏必要的类型检查
JavaScript因为是解释型的语言,没有编译器,只有在执行时,根据变量的赋值,才能确定变量的类型,这样对于开发人员定义与排错
带来一定的复杂度。
2.编程不够语义化,阅读有一定困难
JavaScript因为不是面向对象的编程语言,没有很好的类的思想,而是通过function实现。在一些复杂的实现中,特别是后来的代码阅读者
需要完全看完代码,才能很好理解代码的含义。另外因为不是面向对象的编程语言,在一些设计模式的实现上,通过原型方式实现,实现
非常的复杂,阅读非常的困难。如果后端开发人员要学习JavaScript,与已有的后端面向对象语言比如C#、Java有很大不同,存在一定的
学习成本。
3.代码不可分割,可维护性差
在后端开发中,通过多文件与名称空间的方式组织文件与代码,而JavaScript组织代码在这方面较差。
4.开发工具不够智能
目前大多数的开发工具对于JavaScript的智能提示有一定的局限性,相比后端面向对象的开发工具这方面有一定的差距。
二.TypeScript的优势
1.微软开源的客户端脚本语言,是JavaScript的超集
TypeScript是微软主导的脚本语言,所有JavaScript的功能在TypeScript中都兼容,另外谷歌的Angular 4前端框架也是基于TypeScript编写。
所以无论从功能还是主流厂商支持来讲,TypeScript都具有较大优势。
2.近似静态、编译型语言、强类型
TypeScript可以预先确定变量的类型,编译器会进行类型的检查,防止出现未知的错误。另外强类型支持string、number、boolean、Array、
泛型等多种类似后端编程语言比如C#、Java的特性。
3.智能感知和重构
通过集成开发工具,比如WebStorm、Visual Studio Code、Visual Studio等,可以获得与后端开发同样的智能感知能力和重构能力。
4.语义化、面向对象编程
通过TypeScript语言,可以实现语义化和面向对象的编程,比如类、方法、接口、静态等。
三.总结
TypeScript是强类型、面向对象的客户端脚本语言,可以完全替代原生的JavaScript编写的代码。
TypeScript通过与前端IDE工具,比如WebStorm或Visual Studio等很好的配合,自动转换成对应的ES5或ES6规范的JavaScript代码,方便使用。
总之一句话:在编写TypeScript代码时完全面向对象的实现,实现简单、阅读容易,而且完全转换成JavaScript代码,使用方便。
01-TypeScript概述的更多相关文章
- Android快乐贪吃蛇游戏实战项目开发教程-01项目概述与目录
一.项目简介 贪吃蛇是一个很经典的游戏,也很适合用来学习.本教程将和大家一起做一个Android版的贪吃蛇游戏. 我已经将做好的案例上传到了应用宝,无病毒.无广告,大家可以放心下载下来把玩一下.应用宝 ...
- Java虚拟机JVM学习01 流程概述
Java虚拟机JVM学习01 流程概述 Java虚拟机与程序的生命周期 一个运行时的Java虚拟机(JVM)负责运行一个Java程序. 当启动一个Java程序时,一个虚拟机实例诞生:当程序关闭退出,这 ...
- 重读《学习JavaScript数据结构与算法-第三版》-第2章 ECMAScript与TypeScript概述
定场诗 八月中秋白露,路上行人凄凉: 小桥流水桂花香,日夜千思万想. 心中不得宁静,清早览罢文章, 十年寒苦在书房,方显才高志广. 前言 洛伊安妮·格罗纳女士所著的<学习JavaScript数据 ...
- 054 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 01 数组概述
054 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 01 数组概述 本文知识点:数组概述 为什么要学习数组? 实际问题: 比如我们要对学生的成绩进行排序,一个班级 ...
- Java多线程| 01 | 线程概述
Java多线程| 01 | 线程概述 线程相关概念 进程与线程 进程:进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是操作系统进行资源分配与调度的基本单位.可以把进程简单的理解 ...
- Top-Down笔记 #01# 计算机网络概述
因特网 网络核心 分组交换网中的时延.丢包和吞吐量 协议层次及其服务模型 面对攻击的网络 计算机网络和因特网的历史 小结(自己写的...) [什么是因特网?] 具体构成描述 1.与因特网相连的设备被称 ...
- ETCD快速入门-01 ETCD概述
1.ETCD概述 1.1 ETCD概述 etcd是一个高可用的分布式的键值对存储系统,常用做配置共享和服务发现.由CoreOS公司发起的一个开源项目,受到ZooKeeper与doozer启发而 ...
- [01] MyBatis概述
传统的JDBC来做DAO层,做了下面这几件事: 加载驱动 获取连接 执行SQL语句 获取操作结果封装信息 返回操作结果 而实际上DAO层最关心的是什么呢,就是后面三点就完事,JDBC显得太繁琐: 执行 ...
- 使用Axure RP原型设计实践01,使用概述
首先认识Axure RP Pro 7.0软件的默认界面布局.最上面的是工具栏区域,左侧上方的是网站地图区域(sitemap),左侧中部的是部件区域(Widgets),左侧下方的是模板区域(Master ...
- plsql programming 01 plsql概述
授权 从 oracle 8i 开始, oracle 用通过提供 authid 子句为 pl/sql 的执行授权模型, 这样我们可以选择使用 authid current_user(调用者权限)来执行这 ...
随机推荐
- KNN算法--python实现
邻近算法 或者说K最近邻(kNN,k-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法之一.所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代 ...
- gitlab和github一起使用
还是在转我笔记上的内容, 也算备份 参考(https://segmentfault.com/a/1190000002994742) 可以对比着看, 我记得参考里面有个点没有说详细, 我把自己的流程记下 ...
- 数据处理之pandas简单介绍
Offical Website :http://pandas.pydata.org/ 一:两种基本的数据类型结构 Series 和 DataFrame 先来看一下Series import panda ...
- EXT中导出表格中的数据到Excel
{ itemId: 'excel', text: '导出', iconCls: 'btnExportExcel', disabled: false, handler: function () { // ...
- akoj-1162-计算表达式
计算表达式 Time Limit:1000MS Memory Limit:65536K Total Submit:14 Accepted:7 Description 对于一个不存在括号的表达式进行计 ...
- akoj-1059-Picture
Description 给你一个矩形的宽度和高度,要求按sample output样例输出此矩形. Input 输入包含多组数据,每一组包含两个数N和M( 0 < N ,M , < 75 ...
- vue的一些坑(第二天)
首先啊感谢一位小童鞋的指出其实我写的这些内容算不上坑,只是平时使用的时候的一点小问题,不过只是个名字啦!再次致谢 1:两个简写的命令 v-bind:class可以简写为 :class v-on:cl ...
- window/mac系统关机
window/mac系统关机 #ifdef Q_OS_WIN #include "windows.h" #endif void OnShutDown() { #ifdef Q_OS ...
- C/C++ 知识点---C语言关键字(32个)
C/C++ 知识点 1.C语言关键字(32个) <1>.基本数据类型 [5] void :声明函数无返回值或无参数,声明空类型指针 char :声明字符型变量 int :声明整形变量 fl ...
- 【leetcode】61. Rotate List
Given a list, rotate the list to the right by k places, where k is non-negative. For example:Given 1 ...