1.TypeScript的安装
使用npm全局安装
npm i -g typescript
执行命令
tsc xxx.ts
2.typescript基本语法
let 变量:类型 = 值
例如:let a:number = 1;//为number类型
let b:string; b = "123";//为字符串string类型
let c = true;//如果变量声明与赋值是同时进行,ts可以自动对变量进行类型检测
//function的写法
//函数参数类型设置
function sum(a:number,b:number){
return a+b;
}
//如果你要设置函数返回值的类型
function sum(a:number,b:number):number{
return a+b;
}
//也可以直接使用字面量进行类型声明
let a:10;//设置a为number类型且值为10不能更改,像是js里面的const
//可以这样用
let b:"male" | "female";
b = "male";b = "female";//可以赋两种值
let c : boolean | string
c = true;c = 'hello';
//any类型
//一个变量设置为any相当于对该变量关闭了TS类型检测
let d:any;
d=10; d="123"; d="true";
//如果直接let d;这种也是any任意类型(相当于隐式any)
//unknown类型,如果你不知道式什么类型可以用
let x:unknown; x = 102; x = "hello world!!";
//unknown与any的区别
let y:string;
let z:any; z=20;
y = z; //由于z是一个any类型的变量,所以它可以赋值给任意变量(并且会把自己赋值的变量的类型检测也给关了)
//unknown类型其实是一个类型安全的any
//unknown类型变量不能直接复制给其它变量
//如果你想要给它赋值,你可以进行一下操作
let a:string;
let b:unknown; b = "haha";
//你想给b为unknown类型的赋值为a
if(typeof b === "string"){
a = b;//完美复制
}
//你直接这样赋值 a = b就会报错哦
//当然你可以用类型断言,就可以避免以上a = b的报错
//类型断言 用来告诉解析器变量的实际类型
语法:变量:as 类型
<类型>变量
a = b as string;
a = <string> b;
//void表示为空,以函数为例子,就是表示没有返回值的函数
function fn():void{
}
//never永远不会返回结果
function f1():never{
throw new Error('报错了!!')
}
3.typescript基本语法2
//object表示一个js对象
let a:object;
a = {};
a = function(){};
//{}用来指定对象中可以包含哪些属性
//语法{属性名:属性值,属性名:属性值}
let b : {name:string};
b = {name:'zhangsan'};
//在属性名后面加上一个?,表示属性是可选的
let c : {name:string,age?:number};
c = {name:"孙悟空",age:18};
//[xxxx:string]:any表示任意类型的属性
let d : {name:string,[xxxx:string]:any};
d = {name:"猪八戒",age:18,gender:'男'};
//设置函数结构类型声明
//语法(形参:类型,形参:类型,....)=>返回值
let func:(a:number,b:number)=>number;
func = function(n1:number,n2:number):number{
return 20;
}
//数组表示语法
//类型[]
//Array<类型>
//string[]表示字符串数组
let e:string [];
e = ["a","b","c"];
//number[]表示数字类型数组
let f:number[];
f = [1,2,3];
//以下也表示数字类型数组
let g:Array<number>;
g=[1,2,3,4];
//元组 元组就是固定长度的数组
//语法 [类型,类型,...]
let h:[string,string];
h = ['abc','123'];
//enum 枚举类型
let i:{name:string,gender:0 | 1 };
i = {
name:"张三",
gender:"1"
}
enum Gender{
Male = 0,
Female = 1
}
let i:{name:string,gender:Gender };
i = {
name:"张三",
gender:Gender.Male
}
console.log(i.gender === Gender.Male) //true
//&表示同时
let j :{name:string}&{age :number};
j = {name: '孙悟空',age:18};
//类型别名
type myType = 1 | 2 | 3 | 4;
let k : myType;
let l : myType;