TypeScript开发环境搭建
安装node的运行环境
你可以到Node.js官网去下载Node进行安装(node.js.org), 建议你下载LTS版本,也就是长期支持版本。安装的过程我就不演示了,这个过程就和安装QQ一样,没有任何难度。
如果你已经安装了,可以打开命令行工具,然后使用node -v命令查看安装的版本,但是一般还有一个命令需要检测一下,就是npm -v,如果两个命令都可以输出版本号,说明你的Node安装已经没有任何问题了。
全局安装typescript
你要使用TypeScript先要在你的系统中全局安装一下TypeScript,可使用cmd进行安装,安装好输入tsc检查是否安装好。npm、yarn 两个你使用那个都是可以的,根据喜好自行选择。
npm
npm install typescript -g
yarn
yarn global add typescript
建立项目目录和编译TS文件
在电脑上新建一个目录,我这里起的目录名字叫做TypeScriptDemo,然后把这个文件在VSCode(你习惯的编辑器)中打开。新建一个Demo1.ts文件, 写入下面代码:
function dome1 (){
let name: string = "lixiaoyao"
console.log(name)
}
dome1()
在终端输入node Demo1.ts是执行不成功的,因为Node不能直接运行TypeScript文件,
需要用tsc Demo1.ts转换一下,转换完成后typeScript代码被编译成了javaScript代码,新生成一个demo1.js的文件,这时候你在命令行输入node Demo1.js,在终端里就可以顺利的输出jspang的字符了。
如果在输入tsc Demo1.ts 报错如下(没有报错可以忽略不看)
解决方法 blog.csdn.net/jouine/arti…
然后在命令中直接输入如下命令,会生成Demo1.js文件。
tsc Demo1.ts
在命令中直接输入如下命令,就可以执行Demo1.js文件了。
node Demo1.js
ts-node的安装和使用
但是这样操作的效率实在是太低了,你可以使用ts-node插件来解决这个问题,有了这个插件,我们就不用再编译了,而使用ts-node就可以直接看到编写结果。
使用npm命令来全局安装,直接在命令行输入下面的命令:
npm install -g ts-node
安装完成后,就可以在命令中直接输入如下命令,来查看结果了。
ts-node Demo1.ts
TypeScript的静态类型
TypeScript的一个最主要特点就是可以定义静态类型,英文是Static Typing。可以简单的理解“静态类型”为,就是你一旦定义了,就不可以再改变了。
如何定义静态类型
let count : number = 1;
这就是最简单的定义一个数字类型的count的变量,这里的: number就是定义了一个静态类型。这样定义后count这个变量在程序中就永远都是数字类型了,不可以改变了。比如我们这时候给count复制一个字符串,它就报错了。
但这只是最简单的理解,再往深一层次理解,你会发现这时候的count变量,可以使用number类型上所有的属性和方法。我们可以通过在count后边打上一个 . 看出这个特性,并且编辑器会给你非常好的提示。
自定义静态类型
你还可以自己去定义一个静态类型,比如现在你定义一个小姐姐的类型,然后在声明变量的时候,就可以使用这个静态类型了,看下面的代码。
interface XiaoJieJie {
uname: string ,
age:number
}
const xiaohong : XiaoJieJie ={
uname: '小红',
age: 18
}
这时候如果声明变量,跟自定义不一样,VSCode直接就会报错。需要注意的是,这时候xiaohong变量也具有uname和age属性了。
需要记住的是,如果使用了静态类型,不仅意味着变量的类型不可以改变,还意味着类型的属性和方法也跟着确定了。这个特点就大大提高了程序的健壮性,并且编辑器这时候也会给你很好的语法提示,加快了你的开发效率。
随着你不断的深入学习,你会对这两个优点有更深的理解。
TypeScript基础静态类型和对象类型
在TypeScript静态类型分为两种,一种是基础静态类型,一种是对象类型,这两种都经常使用,非常重要,我们先来看一下什么是基础静态类型。
基础静态类型
在声明变量的后边加一个:号,然后加上对应的类型哦。比如下面的代码,就是声明了一个数字类型的变量,叫做count。
const count : number = 918;
const myName :string = 'xiaoyao'
类似这样常用的基础类型还有,最常用的有,null,undefinde,symbol,boolean,void这些都是最常用的基础数据类型。
对象类型
一个经典的对象类型,也是最简单的对象类型。代码如下:
const xiaoJieJie:{
name:string,
age:number
} = {
name:'大脚',
age:18
}
console.log(xiaoJieJie.name)
对象类型也可以是数组,比如现在我们需要很多小姐姐,我们就可以这样写。意思是,变量xiaoJieJies必须是一个数组,数组里的内容必须是字符串。你可以试着把字符串改为数字,VSCode会直接给我们报错。代码如下
const xiaoJieJies : String [] = ['谢大脚','刘英','小红']
用类的形式,来定义变量。意思就是xiaohong必须是一个Person类对应的对象才可以, 代码如下
class Person{}
const xiaohong : Person = new Person()
我们还可以定义一个函数类型,并确定返回值。代码如下:
const jianXiaoJieJie : ()=> string =()=>{return '杨紫'}
那我们现在总结一下对象类型可以有几种形式:
- 对象类型
- 数组类型
- 类类型
- 函数类型
这几种形式我们在TypeScript里叫做对象类型。
TypeScript类型注解和类型推断
Type annotation 类型注解
这个概念上面文档一直使用,只是我没明确这个概念和关系,所以你会觉的很陌生,直接看代码。
let count : number;
count = 123
这段代码就是类型注解,意思是显示的告诉代码,我们的count变量就是一个数字类型,这就叫做类型注解。
Type inferrence 类型推断
明白了类型注解的概念之后,再学类型推断就更简单了,先来看一段代码。
let countInference = 123
这时候我并没有显示的告诉你变量countInference是一个数字类型,但是如果你把鼠标放到变量上时,你会发现TypeScript自动把变量注释为了number(数字)类型,也就是说它是有某种推断能力的,通过你的代码TS会自动的去尝试分析变量的类型。附上截图,鼠标滑上去效果