TypeScript基础-概述

官方文档

推荐√:微软(最新):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可以编写完善的面向对象代码

有了类型检查, 潜移默化的增强了我们的面向对象的开发的思想!!!

你可能感兴趣的:(typescript前端)