首页 > temp > JavaScript教程 >
-
(一)typescript初识
相信一般大家在刚开始接触typescript的时候,都会有这样一个疑问,为什么要用typescript呢?是因为JavaScript不好吗?typescript又好在哪里呢?那么接下来我们就带着这些疑问往下看。
使用JavaScript开发会遇到的问题
1.使用了不存在的变量、函数或方法
1 let myname = 'yzr'; 2 console.log(myneam); 3 function getName() { 4 return 'yzr'; 5 } 6 getNeam(); 7 let myObj = { 8 getName: function() { 9 return 'yzr' 10 } 11 } 12 13 myObj.getNeme(); 14 15 // 以上代码经常造成以下报错: 16 17 // xxx is not defined 18 19 // xxx is not a function
2.把一个不确定的类型当作一个确定的类型处理
1 function getUserName() { 2 if (Math.random() < 0.5) { 3 return 'user name' 4 } 5 return 404 6 } 7 console.log(getUserName().split(' ')[0]) 8 9 // getUserName(...).split is not a function
3.读取null或者undefined的属性
在处理接口数据时,若期望得到的是对象,但得到的却是null或undefined,会经常遇到各种报错
为什么会有这些问题?主要原因有:
1.js是弱类型语言,某个变量可以随时更换类型,比如:
1 let a = 1; 2 a = '123';
2.js是解释型语言,在浏览器运行时才能看到错误。
而我们写代码时无法感知到错误,包括很简单的错误(变量名、函数名写错)这些问题虽然看上去简单,但是会占用我们大量的前端开发时间
有什么能解决这些问题呢?
那当然是我们的主角typescript啦!
先来看下什么是typescript,以下是官方定义:
TypeScript 是一个开源的编程语言,通过在 JavaScript(世界上最常用的语言之一) 的基础上添加静态类型定义构建而成。类型提供了一种描述对象形状的方法。可以帮助提供更好的文档,还可以让 TypeScript 验证你的代码可以正常工作。在 TypeScript 中,不是每个地方都需要标注类型,因为类型推断允许您无需编写额外的代码即可获得大量功能。
简而言之,typescript是js的超集,是一个可选的、静态的类型系统。
什么是超集?
超集就是指支持js的所有语法,但是又比js多出了一些“类型检查”
什么是类型系统?
对代码中所有的标识符(变量、函数、参数、返回值)进行类型检查
有了类型检查,增强了面向对象的开发
什么是可选的?
在项目中可以选择性使用
什么是静态的?
表示类型检查在编译时,而非运行时。
由于浏览器和node都无法直接识别ts代码,所以ts代码要使用tsc(ts编译器)编译成js代码。
typescript相较于js有哪些优势
1.ts的类型系统,可以极大减少类型错误(uncaught typeError)
2.使得维护和重构代码更加容易(若改动一处代码,其他有依赖关系的地方会有直观的提示信息)
3.补充了接口、枚举等功能,使得ts适用于大型应用开发。
typescript由来
2012年由微软发布,作者是Anders Hejlsbergtypescript官网:https://www.typescriptlang.org/zh/