typescript学习笔记(二)--面向对象特性

一. 类的特性

这里直接写一些demo来实现ts里的类并解释一些小知识:

//实现一个类,并继承它
class Person {
	// 构造方法,实例化之后自动调用,且一次实例化只调用一次
    constructor() {
        console.log(this.name);
    }
    //public  表示公共的,可在任何访问
    public name = 'dahai'; // 等同于name;
    
    //protected 表示受保护的,在类的内部和子类中可以访问
    protected age = 16;
    
    //private 表示私有的,只有在类的内部可以访问
    private sex = '女'
    protected play() {
        console.log('xixi')
    }
}

// extends 继承的关键字,继承后的类有可以使用有权限的父类的所有属性和方法
class Buy extends Person {
	// 继承时要注意,如果子类也有构造函数,必须实现父类的构造函数,使用super来实现
	constructor (public code:number) {
		super();
		this.code = code;
	}
	 //super用法二,调用父类中的方法
    work ()  {
    	super.play()
    }
}
var b1 = new Buy(3);
console.log(b1.name)
b1.work();
var p1 = new Person();
console.log(p1.name);

构造函数的一些其他写法

//这个类似于上面constructor写法
class Person {
	//此处的public name: string不能简写为name:string
	constructor(public name: string) {
        console.log(this.name);
    }
}
// 注意如果construtor中有参数时,new必须传对应的参
var p1 = new Person('xiaolei');

二. 泛型

这篇文章写的很清晰,大家看看哈
https://blog.csdn.net/jasnet_u/article/details/81144199.

三. 接口

我自己理解的接口其实就是一种特殊的类,建立了某种代码约定,使别的开发者在调用某个方法时必须遵循接口的代码约定;但接口是不能实例化的,不过可以通过implements关键字来实现它。
下面来个简单的demo了解一下interface

//这里是类 类型的接口
interface Person {
    name: string
    age: number
    sex?: string
    //添加一个字符串索引签名跳过额外属性检查
    [propName: string]: any;
	eat():void;
}

class Buy {
    constructor (public config:Person) {
		
	}
}
/*
*必传参数:
	*这里如果我们传递的参数不是name、age则ts报错,少参数多参数都不行;这是ts的额外属性检查,要想跳过最好的方法是添加一个字符串索引签名见上
*可选参数:sex后面加?,表示可选参数,可传可不传
var b1 = new Buy({
    name: 'dahai',
    age: 8
});

//实现person接口
class PeopleOne implements Person {
	name = 'dalei'
    age = 9
    eat(): void {    
        console.log(this.name)  
    }
}
var a1 = new PeopleOne;
a1.eat();

四. 模块

模块中这里我主要记录一下如何导入导出,这大家应该也都很熟悉了吧,这里简单写一下,一起来看看哈。

//a.ts
export  var prop1;
export function func1 () {

}
export classs Clazz1 () {

}
//在需要使用的文件中,eg:b.ts
import {prop1, func1, Clazz1 } from './a.ts'
console.log(prop1)
func1()
new Clazz1 ()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值