TypeScript | 青训营笔记

110 阅读2分钟

这是我参与「第五届青训营」伴学笔记创作活动的第10天

今天来记录学习ts的笔记。本篇主要分为简介与使用来介绍ts。

简介

什么是TypeScript

TypeScript是微软开发的一个开源的编程语言,通过在JavaScript的基础上添加静态类型定义构建而成。TypeScript通过TypeScript编译器或Babel转译为JavaScript代码,可运行在任何浏览器,任何操作系统。

TypeScript添加了很多尚未正式发布的ECMAScript。2012年10月,微软发布了首个公开版本的TypeScript,2013年6月19日,在经历了一个预览版之后微软正式发布了正式版TypeScript。当前最新版本为TypeScript 4.9。

ts的优势

  • 代码的可维护性强,尤其在大型项目的时候效果显著
  • 友好地在编辑器里提示错误,编译阶段就能检查类型发现大部分错误
  • 支持最新的JavaScript新特特性
  • 周边生态繁荣,vue3已全面支持 typescript

目前出现的许多库基本都是使用ts进行开发。

ts的劣势

  • 学习成本较高
  • 和一些插件库的兼容并不是特别完美,如以前在 vue2 项目里使用 typescript就并不是那么顺畅
  • 增加前期开发的成本
  • 在个人使用的场景来看,如果对于ts的语法不够熟悉,再加上编译器检验,很容易出现报红的情况。

ts与js的区别

js

  • 动态类型,运行时明确变量的类型,变量的类型由变量的值决定,并跟随值的改变而改变;
  • 直接运行在浏览器和node.js环境中;
  • 弱类型,数据类型可以被忽略的语言。一个变量可以赋不同数据类型的值;

ts

  • 静态类型,声明时确定类型,之后不允许修改;
  • 编译运行,始终先编译成JavaScript再运行;
  • 强类型,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了;

使用

  • 原始类型:number、string、boolean、null、undefined、symbol
  • 数组类型:两种写法:1、number[]  2、Array< number >  定义两个: (number|string)[]

注意

不推荐使用any类型 这会让 'TypeScript’变成 ‘AnyScript’ (失去TS的类型保护的优势),因为当值的类型是any时,可以对该值进行任意操作,并且不会有代码提示, 具有隐式 any 类型的情况:声明变量不提供类型也不提供默认值,函数参数不加类型。