什么是TypeScript:
一:安装
安装TypeScript的命令如下:
查询是否安装成功:安装成功时会显示版本号
或者
注意这里用的是tsc(不是typeScript)
二:typeScript的使用
使用 TypeScript 编写的文件以 .ts 为后缀,用 TypeScript 编写 React 时,以 .tsx 为后缀。
Heloo TypeScript.
编译的命令:
tsc <文件> ,如我们写了一个hello.ts的文件,编译命令则是
编译之后生成了一个同名的js文件:
先学一点基础知识吧==》
Js数据类型在ts中的应用:
布尔值:
在 TypeScript 中,使用boolean来定义布尔类型
数值类型:
使用number来定义:
还可以用number来定义二进制,八进制,十六进制……,NaN,Infinity等一切数值型。
字符串:
使用string来定义:
补充:ts中同样支持es6中模板字符串的用法。
null:
使用null来定义
undefined:
使用undefined来定义
[if !vml]
[endif]
[if !supportLists]6. [endif]空值:
空值:
使用viod来定义(js中没有),用来表示没有返回的函数
以上是基本数据类型,下面学习不基本的==》
任意值:
使用any来定义,表示可以被赋值成任意类型。
如果是下面这样的情况:我们先定义a是一个字符串类型,然后初始值为字符串7,然后再复制数值7,当编译的时候就会报错。
怎么办,在实际开发中我的需求就是要这个变量不是一种类型啊,怎么办呢?这时候,任意值any就排上用场。
未声明类型变量:
变量如果在声明的时候,未指定其类型,那么它会被识别为任意值类型
类型推论:
如果没有明确的指定类型,那么 TypeScript 会依照类型推论(Type Inference)的规则推断出一个类型。(还挺聪明的)
联合类型:
联合类型使用 | 分隔每个类型。
这里的string | number 表示定义的number可以取值为字符串或者数值,只能取这两种类型,如果赋值为其他类型则会报错。
对象的类型:接口
使用接口(Interfaces)来定义对象的类型:
注意:定义的变量的属性和接口的属性要一致,不能多也不能少。那么问题来了,接口定死了属性,我的变量不想局限于这些属性怎么办呢?
1.使用可选属性
可选属性:该属性可以不存在。使用方法是在接口属性后面加一个问号
但是这还是不能满足想添加属性的要求
使用任意属性
上面例子中, 使用 [propName: string] 定义了任意属性取任意类型的值。这样就没毛病啦!
注意:如果定义了任意属性,定义的可选属性就必须包含在任意类型内,否则会报错。