TypeScript 安装及数据类型

118 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第7天,点击查看活动详情

TypeScript

1.TypeScript安装

全局安装ts

 npm install -g typescript

项目目录安装ts-node

 npm install ts-node -D

mac安装后,使用tsc -- version 提示commond说明没有配置环境变量

tsc-》后面是路径 一直到/bin

使用一下命令可以安装

 export PATH="$PATH:/Users/cjz/.npm-global/lib/node_modules/typescript/bin"
 //在查询
 tsc -- version

2.类型声明

1.类型声明同时声明初始话的值

 let b:number = 100;

2.先声明类型,在初始化

 let b:number;
 b= 100;

3.声明初始化值的同时,声明类型

 let b = 100; //b-> number

3.基础类型

1.boolean

补充“==”和“===”的区别

‘==’ 比较两个变量的值是否相等

‘===’要求两个变量的值和类型都要相同

‘!=’会做类型强制转换 而 ‘!==’不会做类型强制转换

‘==’基础类型会先将变量强制转换为相同类型在比较(比如string、number)

‘===’直接进行比较

array、object等类型 直接比较地址 所以没有区别

2.对象

对象解构demo

 let person = {
     name:"zhangsan",
     age: 10
 }
 ​
 let {name,age} = person
 console.log(name)  // zhangsan

展开运算demo

 let person = {
     name:"zhangsan",
     age: 10
 }
 ​
 let person2 = {
     city = "shanghai"
     ...person
 }
 console.log(person2) //city:"shanghai",name:"zhangsan",age:10
3、tuple元组(固定长度,固定类型的数组)
 let tuple:[string,number,number]
 tuple = ["hello",1,2]

可选元素类型(问号代表可有可无)

 let tuple:[string,number?]
 tuple = ["hello",1]
 tuple = ["hello"]

增加

 let tuple:[string,number,number]
 tuple = ["hello",1,2]
 ​
 tuple.push("world");
 console.log(tuple); // ["hello",1,2,"world"]

删除

接着增加代码继续

 tuple.pop(); //删除最后一位
 console.log(tuple); // ["hello",1,2]

更新

接着删除代码继续

 tuple[2] = 100
 console.log(tuple); // ["hello",1,100]

解构

接着上方代码

 let [a,b,c] = tuple;
 console.log(a); // "hello"
 console.log(b) //1
4.enum枚举
 enum loginStatus{
     new = 0,
     update = 1,
     delete = -1
 }
 ​
 let user:number
 if(user === loginStatus.new){
     console.log("新增的user");
 }
5、类型别名(自定义类型)

(1)联合类型

 type Name = string|number
 let a:Name;
 ab = 1 //可以是string/number类型

(2)原始值

 type Name = 11|2233
 let a:Name;
 ab = 11 //只能是112233

其他类型与js差异不大,可参考官网

4.编辑配置

 tsc --init

可以初始化一个tsconfig.json

可修改tsconfig.json

/** 所有目录

/* 代表目录下所有文件

 {
   "include": [
      "./src/**"
   ],
   "exclude": [
     "./lib/**/*"
   ],
   "compilerOptions": {
   
   }
  }