TypeScript学习

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;

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值