长时间自学可算是入职了,不过公司的技术栈和以前学的区别有点大,React+TS,因此就不得不看看TS的一些东西了node
用一篇随笔来记录全部本身学习TS的过程typescript
保证有node.js,而后npm install -g typescript,等一下子就行npm
若是报错并且是权限问题,mac用sudo npm install -g typescript,windows用管理员模式打开cmd安装便可windows
能够用tsc -v检查typescript的版本号,有的话说明安装成功,或者去你安装node的文件夹里看看node_global\node_modules路径下有没有typescriptbabel
ts的本质仍是js,不过两者仍是有区别的,相似于ES6用babel编译成ES5,也能够用ts里自带的tsc把ts编译成js函数
例如以下的ts代码学习
在该目录下对这个文件用tsc 文件名来编译,会获得该ts文件编译后的一个js文件3d
能够发现let声明变化成了var,而后能够用node 文件名来在node中运行一下这个js(固然也能够运行ts)对象
js是一个弱类型的语言,也就是说声明一个变量的时候,没必要管其具体的类型,并且也能够随意修改类型,而ts则对这一点作出了修改blog
ts用变量名:类型的方法声明变量类型,若是不符合则报错
greeter函数内部person参数类型为string,而传入的user类型为array,编译时报错
另外IDE里面也会对错误提醒
不过即便这样,node.js仍是会成功地把ts编译成js
ts里能够用interface声明一个对象,里面有几个属性,以后若是建立这个接口实例,实例中的属性必须和interface声明的接口彻底一致,不然报错
这里声明了Person这个接口,包括firstName和lastName两个属性(固然还有属性校验),以后传入的参数user这个对象的属性和接口一致,所以编译不报错
这里编译成功后正常输出
若是编译失败会报错:Property is missing