首页 > 技术文章 > typeScript基本概念

Shyno 2020-07-31 15:08 原文

           我一直认为学习是知识的累加,而前端技术也是进步的.所以学习的重点就是,'它有什么不同,它好在哪里'.这要求我们必须结合之前的经验和知识去学习一门新技术,而不是无情的复制粘贴机器.

          首先,ts的官方定义是

TypeScript 是一个编译到纯 JS 的有类型定义的 JS 超集。

       这里有几个关键词,'编译'、'JS'、'类型定义'、'超集'.单独看下来似乎都明白,结合起来也就模糊了.但是很明显,它是js的衍生.所以,我们要结合js去学习.

      我在学习它的语法之前特意去找了'为啥要学ts',搞明白了这个就知道了它的核心.得到的结果是这个

因为它有类型定义

      js是弱数据类型语言,所以在数据类型这里会有不少坑.比如

var a=1
var b='2'
var c=3

console.log(a+b) //12
console.log(a+c)  //4

       当变量够多,代码够长的时候.变量的数据类型有时会发生改变,而我们并不清楚,就会导致一系列不易查找的bug.这时候就需要对数据类型进行限制,这就是ts做的事.

       另一方面,光定义并没有用,还需要在编译的时候进行检测,这就是VsCode等编译工具做的事,它能根据ts的定义对数据类型进行检测和提醒.减少了此类bug的出现.

示例:

js:
function yy(a, b, c, d) {
    return a + '总共有' + (c + b) + '个' + d;
}
document.write(yy('我', 1, 2, '苹果'));

  ts:

function yy(a:string,b:number,c:number,d:any){
return a+'总共有'+(c+b)+'个'+d
}
document.write(yy('我',1,2,'苹果'))

 

       以上就差不多是ts的基本作用了,因为写ts本身就需要在原来的js代码增加代码量.而且ts的作用一方面是开发时的检测,另一方面是维护时的指引.所以它更适合大型的、重复维护的、多人开发的项目.小项目用ts反而得不偿失.

推荐阅读