每个人可能观点并不完全一致,但是从很多角度来看,JavaScript是一门非常优秀的编程语言;
而且,可以说在很长一段时间内这个语言不会被代替,并且会在更多的领域被大家广泛使用。
但是Javascript最大的痛点是无法进行类型检测。
什么是TypeScript
GitHub说法:TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
TypeScript官网:TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.
翻译一下:TypeScript是拥有类型的JavaScript超集,它可以编译成普通、干净、完整的JavaScript代码。
-
我们可以将TypeScript理解成加强版的JavaScript。
-
JavaScript所拥有的特性,TypeScript全部都是支持的,并且它紧随ECMAScript的标准,所以ES6、ES7、ES8等新语法标准,它都是支持的;
-
TypeScript在实现新特性的同时,总是保持和ES标准的同步甚至是领先;
-
并且在语言层面上,不仅仅增加了类型约束,而且包括一些语法的扩展,比如枚举类型(Enum)、元组类型(Tuple)等;
-
并且TypeScript最终会被编译成JavaScript代码,所以你并不需要担心它的兼容性问题,在编译时也可以不借助于Babel这样的工具;
TypeScript的编译环境
在前面我们提到过,TypeScript最终会被编译成JavaScript来运行,所以我们需要搭建对应的环境:
我们需要在电脑上安装TypeScript,这样就可以通过TypeScript的Compiler将其编译成JavaScript;
安装命令: npm install typescript -g
查看版本: tsc --version
TypeScript的运行环境
如果我们每次为了查看TypeScript代码的运行效果,都通过经过两个步骤的话就太繁琐了:
-
通过tsc编译TypeScript到JavaScript代码;
-
在浏览器或者Node环境下运行JavaScript代码;
是否可以简化这样的步骤呢?
比如编写了TypeScript之后可以直接运行在浏览器上?
比如编写了TypeScript之后,直接通过node的命令来执行?
-
方式一:通过webpack,配置本地的TypeScript编译环境和开启一个本地服务,可以直接运行在浏览器上;
-
方式二:通过ts-node库,为TypeScript的运行提供执行环境;
TypeScript数据声明
声明了类型后TypeScript就会进行类型检测,声明的类型可以称之为类型注解(Type Annotation);
var/let/const 标识符: 数据类型 = 赋值;
let message:string = 'hello'
比如我们声明了一个字符串类型的message变量,如果后续代码我们将非字符串数据赋值给message就会报错。
TypeScript变量类型推导
在开发中,有时候为了方便起见我们并不会在声明每一个变量时都写上对应的数据类型,我们更希望可以通过TypeScript本身的特性帮助我们推断出对应的变量类型:
变量第一次赋值时,会根据后面的赋值内容的类型,来推断出变量的类型,后续如果赋值其他类型数据则会报错。