【TS】-01-类型

Getting Start

  1. 使用npm全局安装typeScript编译器
    全局安装命令:npm i -g typescript
  2. 使用 tsc 指令编译写好的JS代码
  3. VSCode 可以安装 code runner 插件方便的运行js代码

类型

类型声明

  • 类型声明可以指定TS中的变量,参数,形参,返回值的类型
  • 指定类型后,当为变量赋值时,TS会自动检查值是否符号类型声明,符合则赋值,否则报错。
  • TS 拥有类型推断,如果声明的同时赋值,可以省略类型信息。
  • 语法:
let 变量: 类型;
let 变量: 类型 =;
let 变量 =;	//【自动类型推断】效果等同于上一条
function fn(参数: 类型,参数: 类型): 类型{
	...
}
语法:(形参:类型,形参:类型...)=>返回值 //效果等同于上一条
  • 类型
类型例子描述
number1,-33,2.5任意数字
string“hello”,“h”任意字符串
booleantrue、false布尔值
字面量其本身限制变量的值就是该字面量的值
any*任意类型,相当于关闭了类型检查
unknow*类型安全的any
void空值(undefined)没有值(或undefined)
never没有值不能是任何值
object{name:“bin”}任意的JS对象
array[1,2,3]任意JS数组
tuple[4,5]元素,TS新增类型,固定长度的数组
enumenum{A,B}枚举,TS中新增类型
  • number 示例:
let decimal: number = 6;
let hex: number = 0xf00d;
let binary: number = 0b1010;
let octal: number = 0o744;
let big: bigint = 100n;
  • 字面量示例:
let b:"male"|"female";
b = "male";	// 正确
b = "female";	// 正确
b = "hello";	// 错误
  • any、unknown示例:
let d: any;
d = 5;
let s: string;
s = d;	// any 可以赋值给任何变量【严重的问题,会污染别的变量类型】
let e: unknow;
e = 5
s = e;	// 会报错,unknown不会污染类型

// 如果非要进行赋值,可以进行一次类型检查
if(typeof e === "string"){
	s = e;	// 不报错
} 
// 或者对unknown 使用类型断言
s = e as string;	// 注意,只有unknown能使用类型断言
s = <string>e;		// 效果同上

  • void never 示例:
// void表示返回空
function fun(): void {

}
// never表示永远不会返回结果
function fun2(): never {
	throw Exception("出错辽");
}
  • object 示例:
// {} 用来指定对象中可以包含哪些属性
// 语法:{属性名:属性值,属性名:属性值}
// 在属性名后边加上?,表示属性是可选的
let b:{name:string,age?:number}
b = {name:"yyb",age:18};
// 上面这种语法存在的问题是,需要将每个类型一一指出
// 可以使用 [propNmae:string]:any 表示 任意属性
let c:{name:string,[propName:string]:any}
c = {name:"yyb",age:18,gender:"male"}
  • 函数示例
// 设置函数结构的类型声明
//	语法:(形参:类型,形参:类型...)=>返回值
let d:(a:number,b:number)=>number;
d = function(n1 :number, n2:number): number{
	return n1+n2;
}
  • 数组示例:
let f:number[];
let g:Array<number>;	// 效果同上
  • 元组示例:
    元组就是固定长度的数组
let h:[string,number];
h = ['hello',123];
  • 枚举示例:
// 声明 枚举
enum Gender{
	Male = 0,
	Female = 1
}
// 使用 枚举
let i: {name: string,gender: Gender}
i = {
	name:'bin'
	gender: Gender.Male	// male -> 0
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值