TypeScript 学习

@[TOC] TypeScript 学习

基本类型

类型描述
number数字
string字符串
boolean布尔
字面量本身
any*
unknown安全类型的any,需要 类型断言转化
void空值(undefined)
never没有值,用于throw 报错
object多个的话{[key:string]:类型}
array类型【】,Array<类型>
tuple元组,固定长度的数组
enum枚举 enum Gam{}

类型断言 ** as 类型 或者 <类型>d

定义类 (实例属性类属性【静态属性,加个static】)

在这里插入图片描述

构造函数(constructor)

// 构造函数会在对象创建时调用
class Dog{
constructor() {
console.log(this) 实例方法中,this表示当前的实例,当前新建的那个对象
}
}
在这里插入图片描述

继承(extends)

// 通过继承可以将多个类中公用的代码写在一个父类中,这样只需要写一次即可让所有的子类都同时拥有父类中的属性

  • 如果希望在子类中添加一些父类中没有的属性或方法直接添加即可
  • 如果在子类中添加了和父类相同的方法,则子类会覆盖(不会影响父类,重写
    class Dog extends Animal{}

super关键字 (超类)

在这里插入图片描述

多用于子类向父类添加属性,调用构造函数

在这里插入图片描述

抽象类(abstract)

不能用来创建对象,专门用来继承对象的

  • 可以用于抽象方法,子类必须调用重写
    在这里插入图片描述

接口

用来定义一个类结构,用interface

interface myInter{
name:string;
sayHello():void;
}

/**
* 实现接口就是使类满足接口的要求  implements 
*
**/
class MyClass implements myInter{
name:string
constructor(name:string){
	this.name =name
	}
	sayHello(){
	log('1111')
	}
}

属性的封装

/**
* public 修饰的属性可以在任意位置访问修改
* private 私有属性,只能在类内部进行访问修改,可以通过get,set获取内部属性
* protected 受包含属性,只能在类内部和子类使用
*
**/
class MyClass{
	private name:string
	constructor(name:string){
			this.name =name
		}
	getNmae(){
		return this.name
		}
	setName(value:string){
		this.name = value
		}
	// **Ts 中设置getter,setter方法**  使用直接  per.name  会走get
	get name(){
		return this.name
	}
	set name(val:string){
		this.name = val
	}
}
const per = new MyClass()
per.name = 'sss'   //  报错

泛型

在定义函数或是类时,如果遇到类型不明确就可以使用泛型

function fn<T>(a:T):T{
return a
}

两种调用: 
fn(10)  自动判断类型
fn<类型>('hellow')  指定泛型

指用多个
function fn2<T,K>(a:T,b:K):T{
	log(b)
	return a
}
fn2<number,string>(111,'hello')

限制范围
// T extends Inter  表示泛型T必须是Inter实现类(子类)
interface Inter{
	length:number
}
function fn3<T extends Inter>(a:T):number{
	return a.length
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值