1.在终端下载2个包
ts包: npm install -g typescript
ts-node包: npm install -g ts-node
安装好这个两个包之后,使用 ts-node 命令运行文件可能会报错,无法执行
需要安装 npm install -D tslib @types/node
2.使用
执行tsc 作用就是把ts编译成js
3.## 基础部分:
js分为: 原始数据类型(布尔值、数值、字符串、null、undefined 以及 ES6 中的新类型 Symbol) 和对象类型
##3.1 原始数据类型
// 1. 布尔值 : 是基础的类型 在ts中使用 boolean定义布尔值类型
let a:boolean=false
//如果是够造函数Boolean创建的对象不是布尔值 new Boolean(1)返回的是对象
let createb:Boolean=new Boolean(1) //够造函数B必须大写
// 2. 数值:使用number定义数值类型
let two:number=0b1010; //二进制
let eight:number=0o744; //八进制
// 0b1010 和 0o744 是 ES6 中的二进制和八进制表示法,它们会被编译为十进制数字。
// 3. 字符串:定义字符串类型
let Name:string="tom";
let strName:string=`你的名字是${Name}`//模板字符串
// console.log(strName);
// 4.空值:js中没有空值,ts可以用void表示没有任何返回值的函数
function fun():void{
alert("空值")
}
let b:void=undefined //void只能赋值为undfined和null
// 5.null和undefined: ts中null 和undefined来定义两个原始数据类型
let u:undefined=undefined;
let n:null=null
//undefined 和 null 是所有类型的子类型。也就是说undefined类型的变量,可以赋值给number类型的变量;
//void类型的变量不能赋值给number类型的变量
## 任意值 (any)
// 任意值 (any) 可以赋值为任意类型
// 什么是任意值类型?
//如是普通函数,在赋值过程中改变类型是不被允许的
let user:string="张山"
//user=7报错
let user1:any="王五"//声明一个变量为任意值之后,对它的任何操作,返回的内容的类型都是任意值。
user1=7
let tom; //在变量声明未指定其类型,那么它会被识别为任意值类型
tom="李四"
tom=7
tom.setName("tom")
##/类型推论
//类型推论:没有明确的指定类型的时候推测出一个类型
//1.例如str
let str="hello"
str="1"
//2.定义时没赋值,被推断成any类型不会被类型检测
let my
my="hhh"
my=7
##联合类型
//联合类型: 取值可以为多种类型中的一种。
//使用: 用 | 分隔每个类型
let a:string|number //只能是string或number类型
a="ss"
a=7
//1.联合类型的属性或方法
function sy(arg:string|number){//不确定哪个类型 :只能访问联合类型的公共属性和方法
// return arg.length; 字符串有length
arg.toString() //有sting和number
}
//2.联合类型的变量在被赋值的时候,会根据类型推论的规则推断出一个类型:
let Cart:string|number;
Cart="kkkk";
console.log(Cart.length);
##对象类型--接口
// 对象--接口(interfaces定义对象的类型) 也用于对于“对象的形状(shape)”的描述
interface Person{
name:string,
age:number
}
let ke:Person={
name:'key',
a