Typescript学习--类中属性的封装和泛型

一.属性的封装

  • TS可以在属性前添加属性的修饰符
  • public修饰的属性可以在任意位置访问,为默认值
  • private私有属性,私有属性只能在类的内部进行访问(修改),通过在类中添加getset方法,使得私有属性可以在外部访问
  • protected受保护的类,只能在当前类及其子类中访问

get和set方法

class Person{
	private _name: string;
	private _age: number;

	get name(){ // get方法
		return this._name
	}
	set name(value:string){ // set方法
		this._name = value
	}
}
const per = new Person()
per.name                     执行get方法直接获取this._name属性值
per.name = '小四'             执行set方法更改this._name的值

二.构造函数的简写

class C{
	name:string;
	age:number;
	constructor(name:string,age:number){
		this.name = name;
		this.age = age
	}
}
等价于
class C{
	constructor(public name:string, public age:number)
}
  • 可以直接将属性定义在构造函数中

三.泛型

  • 在定义函数或类时,如果遇到类型不明确就可以使用泛型
function fn<T>(a:T):T{
	return a 
}
  • 可以直接调用具有泛型的函数
不指定泛型,TS可以自动对类型进行推断
let result = fn(123) 
指定泛型
let result = fn<string>('hello')
  • 泛型可以同时指定多个
function fn<T,K>(a:T,b:K):T{
	return a
}
fn<number,string>(123,'hello')
  • T extends Inter表示泛型T必须是Inter的实现类(子类)
Interface Inter{
	length:number
}
function fn3<T extends Inter>(a:T):number{
	return a.length
}
  • 泛型在类中的实现
class myClass<T>{
	name:T;
	constructor(name:T){
		this.name = name
	}
}
const mc = new myClass<string>('小四')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值