官网文档

举荐√:微软(最新):https://www.typescriptlang.org/

国内(相比落后几个版本):https://www.tslang.cn/

为什么要学习️

为了好工作,国内很多公司都在应用ts了,会ts有劣势

这门语言带了更好的开发体验,进步开发效率

解决js中的难以解决的问题

节俭在开发中排错的大部分工夫,尤其是大型项目中

js语言的问题

  • 片段一
function getName() {  if (Math.random() < 0.5) {    return "yuan jin"  }  return 404}let myname = getUsername()mynema = myname.split(" ")  .filter(it => it)  .map(it => it[0].touppercase() + it.subStr(1))                .join(" ")
  • 片段二

     // 这只是示例,咱们开发过程中,变量的值个别是接口获取的数据或在一大段代码里混着,极易产生谬误  const obj = undefined  console.log(obj.name)
  • 能够看到咱们创立的ts文件,间接把各种问题都裸露进去了,包含应用不存在的变量, 函数,或成员, 把一个确定的类型当作一个确定的类型解决应用值为null, 或undefined的成员去当成对象等其余去应用, 当然还有其余比方变量的类型不确定性,赋值不同的类型的值, 全局变量的反复定义
  • 比方咱们在测试环境写了一大段代码,过后测试时没发现写错了,后果上线却发现有问题,这是十分可怕的。所以ts很好的发现了99%人工不没发现的小问题。

js的原罪

  • js语言的过后是只用了两周赶出来的语言,为了在浏览器实现小的成果. 所以js语言自身的个性,决定了该语言无奈适应大型的我的项目
  • 是属于弱类型语言: 变量能够随时更换类型
  • 解释性: 谬误的产生在运行时运行后能力晓得谬误在哪。 而java等其余语言是编译型,编译时就会发现错误

Ts语言的特点️

  • TypeScript是JS的超集(还是用js语言去编写,内容包含js, e5, es6...,只是在此基础上减少了扩大,比方类型零碎),是一个可选的(ts文件中,能够加类型查看,也能够不加,ts会主动推算出以后的变量的类型),动态(编写代码的时候类型查看,不是在运行时)的类型零碎
  • 对代码中的所有标识符(变量, 函数,参数, 返回值)进行类型查看
  • 不须要对之前的js文件破坏性的革新,学习曲线平滑,只须要将文件后缀改成ts,就会主动加上谬误查看
  • 浏览器环境,node环境无奈间接辨认ts代码,须要应用tsc命令-ts编译器转化为es
  • ts不参加运行,打包后的类型查看, 只在编译-编写代码时

Ts的常识

2012年由微软公布,由anders主导开发。目标为了解决js编写的痛点,进步开发效率
开源, 拥抱ES规范,蕴含最新ES

额定的惊喜

因为js没有类型查看,所以在js中很多面向对象的场景实现起来有诸多问题, TS能够编写欠缺的面向对象代码

有了类型查看, 耳濡目染的加强了咱们的面向对象的开发的思维!!!