TypeSprict基础用法

这篇博客介绍了TypeScript的基础用法,包括类型声明如字面量、联合类型、any和unknown,以及类的详细结构,如构造器、继承、抽象类和接口。还讨论了泛型在定义函数和类时的应用,以及如何配置Webpack来处理TypeScript项目。
摘要由CSDN通过智能技术生成

前期准备

开发环境搭建: node.js
全局安装 typescript:npm i -g typescript
编译命令:
	1、自动编译当个文件: tsc xxx.ts 或 tsc xxx.ts -w 
     2、自动编译整个项目: tsc  或 tsc -w
            直接使用 tsc 的前提是在项目根目录下创建一个 ts 的配置文件 tsconfig.josn
            tsconfig.json 是 ts 编译器的配置文件,ts 编译器可以根据它的信息来对代码进行编译

类型声明

1、字面量

	let a:number; a = 10;
	let b: 10  // 注意此处 b 不可再赋其他值:b = 11 报错;b = 10 正常

2、联合类型 - 使用 | 来连接多个类型

	let c: boolean | string
	c = true;
	c = 'hello';
	c = 1 ; // 报错

3、any 任意类型 - 可以随意赋值

相当关闭了类型检测功能(不推荐使用)

	let d: any
	d = 1;
	d = 'hello';
	d = true;

注意如果不指定类型,则TS解析器会自动判断变量类型为 any (隐式)

	let e;  // e 的类型为 any
	e = 10;
	e = 'hello';

4、unknown 未知安全类型的值 - 可以随意赋值

	let f: unknown
	f = 1;
	f = true;
	f = 'hello';

注意unknown 和 any 的区别:any 可以赋值给任意变量,不会报错,unknown 不能直接赋值给其他变量会报错

	let d: any; d = 1;
	let f: unknown; f = 'hello';	
	let g: string;
	g = d; // 不报错
	g = f; // 报错

5、类型断言

告诉解析器变量的实际类型,语法:
变量名 as 类型
<类型>变量名

	let f: unknown; f = 'hello';	
	let g: string; 
	g = f as string; 
	g = <string>f;

6、void 用来表示空,以函数为例,就表示没有返回的函数

	function fn(): void {
   }  // 直接省略 return
	function fn2(): void {
   
	    return 
	}   // return 不能带值,不然会报错

7、never 表示永远不会返回结果

	function fnNo(): never{
   
	    throw new Error('报错了')
	}

8、{} 用来指定对象

因为 对象、function 都是object,所以用 {} 来指定对中可以包含哪些属性
语法: {属性名: 属性值类型… }

  • 传参类型结构需一致
	let obj: {
   name: string, age: number};
	obj = {
   name: "花姐", age: 4};
	obj = {
   name: "橘宝"}; // 缺少 age 会报错
  • 属性名 ?,实现参数可选
	let newObj: {
   name: string, age?: number}
	newObj = {
   name: "花姐", age: 4}
	newObj = {
   name: "花姐"} // 不报错
  • [propName: string]: any 实现参数数量、类型 可选
	// [propName: string] 表示任意字符串的键名;[propName: string]: any 表示任意类型的属性
	let propObj: {
   name: string, [propName: string]: any}
	propObj = {
   name: '花姐'}
	propObj = {
   name: '橘宝', age: 2, gender: '男'}

9、数组

  • 类型[]
	let str: string[];
	str = ['a', 'b'];
	str = [1, 2]; // 报错
  • Array[类型]
	let strA: Array<number>;
	strA = ['a', 'b']; // 报错
	strA = [1,2,3];

10、元组,固定长度的数组

语法:[类型、类型…]

	let YZ:[string, number];
	YZ = ['12', 2];
	YZ = ['12', 2, 123]; // 报错

11、枚举

	enum Color {
   Red, Green, Blue}
	let colorName: string = Color[2];
	alert(colorName); // Green

12、设置函数结构的类型声明

	let fns:(x: number, y: number) => number
	fns = function(x, y){
   
	    return x + y
	}

13、类

  • 类中主要两个部分:属性、方法

                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值