什么是typescript
他是JavaScript的一个超集,支持ECMAScript6标准,由微软公司开发的自由、开源的编程语言,扩展了JavaScript得语法,它的设计目标是开发大型应用,全部浏览器兼容。
优点:他有更多的规则和类型限制,代码具有更高的预测性、可控性,易于维护和调试;对模块、命名空间和面向对象的支持,更容易组织代码开发大型复杂程序
如何安装
使用npm安装typescript 1.使用一下命令来安装模块 npm install -g typescript/cnpm install -g typescript
注意:使用cnpm需要提前安装淘宝镜像
运行和编译typescript
所有的TS文件必须通过下列方式编译成JS文件后,才能执行页面
- 使用中断指令手动编译tsc index.ts
- 使用中断指令自动编译tsc --init生成对应得tsconfig.json文件
- tsc -w检测将ts文件编译成js文件
原始数据类型
布尔类型
声明boolean类型: 冒号:前面是变量名称,后面是变量类型,布尔型是最简单的数据类型,它的值就是true/false值。
let isDone:boolean=false
字符型
声明string类型: 使用string表示文本数据类型,使用双引号("")或单引号('')便是字符串,同时,还可以使用模板字符串,它可以定义多行文本和内嵌表达式。
let userName:string='abc'
let info:string=`Hello world`
undefined和null类型:
声明undefined和null类型: 在TS语法中,这两种类型的功能不是很强大,他们是所有类型的子类,可以将它们赋值给人以的类型,如果不声明类型,默认undefined型。
let unde:undefined=undefined;
let nul:null=null;
void型
声明void类型: 他表示没有任何类型。当一个函数没有返回值时,其返回类型是void,声明一个void类型的变量,只能接受undefined和null类型值
let unusable:void=undefined;
function tip():void{
console.log("ok")
}
any型
声明any类型: 当一个变量的值源于用户输入、动态内容和第三方插件,在不清楚明确类型的情况下,可以定义为any型,当只知道一部分值得类型的时候,也可以定义为any型
let notSure:any=4;
let anyThing:any[]=[1,true,"free"]
never型
声明never类型: 它是其它类型的字类型,代表从不会出现的值,never变量只能被never类型所赋值,函数中他表现为抛出异常或无法执行到终止值
var a:never
//a=1234 会报错
a=(()=>{
throw new Error("报错")
})
数组型
声明数组类型: 第一种,可以在元素类型后面接上[],表示由此类型元素组成的一个数组
let nums: number[]=[1,2,3]
第二种方式是使用数组泛型,Array<元素类型>
let nums2:Array<number>=[1,2,3]
元组型
声明元组类型: 该类型是指定数组中每一个值具体类型,在赋值时必须遵行定义的顺序和类型,他是一种严格的数组
let arr:[string,number,boolean]=['你好',3,true]
object型
声明object类型: 表示非原始类型,也就是除unmber,string,boolean,symbol,null或undefined之外的类型
function test(obj:object){
console.log("ok")
}
test({"name":"石志强"})
test(()=>{})
test([1,2])
一个元素可以声明多个类型
声明多个类型:
let a:number|string|undefined
console.log(a)//没有赋值就是undefined
a=100
console.log(a)//此时a的值为100