typescript上手-准备\基础类型(一)

本文从安装配置入手,详细介绍了TypeScript的基础类型,包括布尔值、数字、字符串、数组、元组、枚举、any、void、null、undefined和never。并通过实例展示了类型断言的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

因为平时的项目中鲜有用到面向对象的场景,对ts的学习也一直没有正式的提上日程,随着vue3的一直吵闹ts支持的消息充斥圈子,也决心系统学习下,毕竟可以不用,但是不能不会。

安装

官网的介绍,可以直接通过vscode的插件进行安装,我一向是sublime的簇拥,这里还是通过传统的npm进行安装

	npm install -g typescript

编译

随便敲两行ts的代码,保存为ts文件;

	function domWrite(ops:string) {
	    return "Hi, " + ops;
	}
	document.write(domWrite('佳佳布鲁根'))

script直接引用ts肯定是会报error的,毕竟只会解析js的语法;这里就需要通过ts指令对ts文件进行编译,输出js

	tsc index.ts

假设这里错误的使用了函数定义的参数,传入Number(312),则在编译的过程中就会曝出错误,这也是ts的优势之一,早发现早治疗
在这里插入图片描述
当然ts的编译可以通过开发工具或者webpack的ts-load进行自动编译,这先说上手,以后用到在详说;

没啥东西,到这里就可以开始撸代码了;

基础类型

typescript支持与javascript几乎相同的数据类型,此外还提供了实用的枚举类型方便我们使用。

布尔值

boolean true|false

	let flag:boolean = false;

数字

number 和js一样,ts里的所有数字都是浮点数。 js有的问题依然有;

	let num:number = 666;

字符串

“就是字符串”当然es6的字符串模板也是string,所以`这种字符串也可以`·

	let str: string = "dugan";
	let str1:string = `${str}!!!`;

数组

[‘数’,‘组’] ts中有两种定义方式
第一种,可以在元素类型后面接上 [],定义了啥类型,数组中就只能有这一种类型的项

   let arr1: number[] = [1, 2, 3];
   let arr2: number[] = ['1',' 2','3'];

第二种方式是使用数组泛型,Array<元素类型>:

	let arr: Array<number> = [1, 2, 3];
	arr[3]=4  //Fine

元组 Tuple

元祖类型实际上也是数组,只不过可以分开指定项的类型,和数组不同的是超出长度数组指定赋值仍会报错

	let arr: [string, number];
	arr = ['666', 666];		// Fine
	arr = [666, '666'];		// Error
	arr = ['666', true];	// Error
	arr[2] = 666;			// Error

枚举

enum类型是ts独有的,也是对js的补充。 官网的说法是像C#等其它语言一样,使用枚举类型可以为一组数值赋予友好的名字。我觉得用人话说就是给变量加个名称,避免魔鬼数字

	enum paece{black, white, freedom}
	let litC: paece= paece.black;

编译成js就是

	var paece;
	(function (paece) {
	    paece[paece["black"] = 0] = "black";
	    paece[paece["white"] = 1] = "white";
	    paece[paece["freedom"] = 2] = "freedom";
	})(paece || (paece = {}));
	var litC = paece.black;
	console.log(litC);

大致就是一个对象

	paece = {
    	0: "black"
   		1: "white"
   		2: "freedom"
   		black: 0
   		freedom: 2
   		white: 1
   }

Any

any就是anyway,就是爱咋咋地;当不知道变量将会是什么类型的时候就可以指定any

	let obj: any = 4;
	obj = "爱咋咋地";
	obj = false; 
	obj = {};
	//All Fine~

Void

字面意思就是无类型,声明这玩意只能赋值null和undefined;暂时没想到哪里能用上;

	let obj:void = null;
	obj = undefined;	//Fine
	obj = 'undefined';	//Error

Null 和 Undefined

真的就只有null和undefined…

	let obj1:null = null;
	let obj2:undefined = undefined;

Never

never类型表示的是那些永不存在的值的类型。 这个大段的描述没消化了,直接上代码还透彻点

	function error(message: string): never {
	    throw new Error(message);
	}

类型断言

在写新的blog时发现用到了断言,才意识到之前并没有学习过,想了一下吧这个一并放在类型里比较合适;
类型断言其实就是通知编译器,我明确的知道变量的类型是什么,通过更改类型,进行更好的方法使用

类型断言有两种形式

let sth: any = "this is a string";
let strLength: number = (<string>sth).length;		//“尖括号”语法
let strLength: number = (sth as string).length;		//as语法

两种写法度可以,但是在jsx中尖括号的写法可能会引起编译错误,所以尽量使用as语法就好了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值