当前位置: 首页 > news >正文

学做标书网站今天发生的新闻

学做标书网站,今天发生的新闻,套模板建设网站多少钱,php做购物网站怎么样主要记录ts中的类、接口与泛型 1.类 无论是在哪种语言中,类都是面向对象编程(OOP)的一个主要实现方式。能够实现代码更加灵活,更具有结构化。类作用都是提供一个模板,通过类可以创建多个具有相同结构的对象。 // 类的定义,与对象…

主要记录ts中的类、接口与泛型

1.类

无论是在哪种语言中,类都是面向对象编程(OOP)的一个主要实现方式。能够实现代码更加灵活,更具有结构化。类作用都是提供一个模板,通过类可以创建多个具有相同结构的对象。

// 类的定义,与对象的声明
class Student {id: stringname: stringage: numberconstructor(id:string, name:string, age:number) { // 构造器this.id = idthis.name = namethis.age = age}speak() {console.log('I am a student, my name is' + this.name);}
}
let stu1 = new Student('0001','小王', 18)
let stu2 = new Student('0002','小刘', 19)
let stu3 = new Student('0003','小李', 20)
  • 类的继承
// 类的继承
class SeniorStudent extends Student { // 继承父类grade:stringconstructor(id:string, name:string, age:number,grade:string) {super(id, name, age) // 通过super把父类需要的参数传入this.grade = grade}override speak(): void { // 重写speak方法console.log('I am a senior student, I am '+ this.name + ', i am in grade '+this.grade);}
}
let sen1 = new SeniorStudent('0007', '小L', 18, '高三')
sen1.speak() // I am a senior student, I am 小L, i am in grade 高三
  • 类属性的修饰符

    • public:使用public修饰的成员属性或者成员方法既能在自身类中和子类调用也能在类外部调用;
    • private:使用private修饰的成员属性或者成员方法只能在自身类中调用;
    • protected:使用protect修饰的成员属性或者成员方法只能在自身类中和子类调用,不能在类外部调用;
    • readonly:使用readonly修饰的成员属性无法修改。
  • 抽象类和抽象方法

抽象类用abstract来修饰。抽象类的作用是为派生类提供一个基础结构,抽象类可以被继承不能被实例化。抽象类中的方法可以是抽象方法(用abstract修饰),也可以是普通方法。其中的抽象方法一定要被派生类实现。

// 抽象类
abstract class Cup{shape: string;price: number;private readonly resource: stringconstructor(shape:string, price:number, resource:string) {this.shape = shapethis.price = pricethis.resource = resource}getInfo() {console.log('Infos: shape is ' + this.shape+ 'resource is ' + this.resource + 'price is ' + this.price );}abstract changePrice(val:number): void //抽象函数不能够实现具体功能,只能声明参数你返回值
}class glassCup extends Cup {constructor(shape: string, price:number, resource:string, private volumn:number) {super(shape, price, resource)}changePrice(val: number): void {this.price = this.price - valconsole.log('the price change to ' + this.price);}
}

思考: 在实践这段代码的时候,我有个小想法。之前函数定义的方法有下面这种格式的,表示: 声明一个函数,函数名为countSum, 并且指定形参和形参类型,同时通过=>指定返回值类型。这种形式的函数声明也是一个声明方式,没有实际实现,那么我是否可以用这种方式来定义抽象类中的抽象方法呢?

    1. 我不知道abstract关键字加在哪
    1. 在代码中尝试写了不加abstract关键字的格式,代码报错
let countSum :(x:number, y:number)=>number

上面这种格式只适用于函数声明,不适用于类方法

2.接口

接口是用于规范类、函数、对象的结构。接口只能定义格式,不能像类一样被实现。通过关键词implement调用接口。

// 类
interface ComputerInterface {id: string;brand: string;exture: string;price: number;start(): void; // 可以规定要有这个函数,但是不能具体实现这个函数
}class ASUS implements ComputerInterface {constructor( // 类的简写形式,将属性在构造器里面声明,需要写明修饰符public id: string,public brand: string,public exture: string,public price: number) {}start(): void {console.log(this.brand + 'is starting....');}
}
let asus1 = new ASUS('0001', '华硕', '轻薄本', 5000)

接口规范对象,注意写法

//接口规范对象
interface ObjectInterface {name: stringage: numbergender?:string // 可选
}let obj1: ObjectInterface = { // 注意写法name: 'no_name',age: 18
}

定义函数规范,写法跟对象类似,也在写这个过程中感受到了ts的一些特点,比如:必须先声明res且定义其为空字符才能进行后面的相加和赋值;

// 接口定义函数的规范
interface FunInterface {(a:string, b:number):string
}
let printString: FunInterface = (a: string, n: number) => {let res = ''for (let i = 0; i < n; i++) res = res + areturn res// return a.repeat(n)
}

接口也可以继承。接口还能够合并,在某个地方定义接口a后,继续又定义了接口a并写了新的属性,两个接口会合并成一个

http://www.hkea.cn/news/11563/

相关文章:

  • 哪个网站做任务给东西仁茂网络seo
  • 深圳赶集同城网站建设色盲眼镜
  • 龙岩网红隧道在哪seo算法是什么
  • 长滚动页网站怎么做搜索量查询
  • 网站跳转微信链接seo好学吗入门怎么学
  • 乐陵市人民医院陕西seo排名
  • 南昌简单做网站万能导航网
  • 武安网站建设网上怎么找人去推广广告
  • 域名 和网站有什么区别吗网站优化排名怎么做
  • 网站怎么添加统计代码正规网站建设服务
  • 上海装修公司网站建设推广app佣金平台正规
  • 网站开发小程序开发公司网站排名快速提升工具
  • 金山网站制作营销推广活动策划书模板
  • 屯留做网站哪里好seo标题优化的心得总结
  • 哪些公司做网站改造外贸网站建设报价
  • 广州化妆品网站建设公司排名太原seo推广外包
  • 做网站的标签及属性微信crm
  • 网站建设平台一般多少钱核心关键词和长尾关键词
  • 营销策略手段有哪些seo是哪里
  • 回合网页游戏排行榜前十名绍兴seo公司
  • wordpress登录后台空白抖音搜索seo代理
  • 论坛网站备案seo优化实训总结
  • 北京华昊网站建设网页搜索关键字
  • 怎么查询网站的服务器在哪里长春关键词优化报价
  • 网站503错误怎么解决百度热搜高考大数据
  • 洛阳网站建设哪家专业百度推广开户费用
  • wordpress主题 说说宁波seo外包推广渠道
  • 在线开发网站建设西安关键字优化哪家好
  • 长春市建设局网站企业seo的措施有哪些
  • 做网站推广武汉刚刚突然宣布