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

网站设计建设介绍建网站怎么赚钱

网站设计建设介绍,建网站怎么赚钱,如何选择做网站公司,商务网站开发课程体会接口是对类的一部分行为的抽象 类类型 实现接口 为什么不是描述类呢?而是类一部分行为的抽象? 类中分为:静态部分(构造器)、实例部分(类成员)。 类成员:实例的属性、原型上的方…

接口是对类的一部分行为的抽象

类类型

实现接口

为什么不是描述类呢?而是类一部分行为的抽象?

类中分为:静态部分(构造器)、实例部分(类成员)。

  • 类成员:实例的属性、原型上的方法。
    • 接口就是为了修饰类成员
  • 静态部分:constructor
    • 构造函数是不能通过接口实现的,接口实现的是构造函数实例化的对象。

类的本质是构造函数,构造函数上没有类成员,所以接口不能描述类,而是说类实现的这个接口。

类实现的这个接口:接口描述属性,在类中去具体实现。

接口描述了类的公共部分

总结:修饰类需要写两个接口 + 一个函数:一个接口用来修饰类成员,一个接口用来修饰类构造函数本身,用一个函数把两者合并。

interface IPerson {name: string;sayName: (a: string) => void;
}interface IPersonCons {new (a: string): IPerson;hobby: string;sayHobby: (b: string) => void;
}class Person implements IPerson {name ='123';sayName(c: string) {console.log(this.name, c);}constructor(a:string) {this.name = a;};static hobby = '123';static sayHobby (b: string){console.log(this.hobby, b);}
}function createPerson(c:IPersonCons): IPerson{return new c('zhangsan');
}let person =  createPerson(Person);
console.log(person.name); //zhangsanperson.sayName('white'); //zhangsan white
person.sayName('white'); //zhangsan whiteconsole.log(Person.hobby); //'123'
Person.sayHobby('baskstball'); //'123 baskstball'

如果没有静态属性,函数可以怎么写?

interface IPerson {name: string;sayName: (a: string) => void;//简写上面:sayName();
}
class Person implements IPerson {name ='123';sayName(c: string) {console.log(this.name, c);}constructor(a:string) {this.name = a;};
}
//写法1
function createPerson(c:{new (a: string): IPerson;}): IPerson{return new c('zhangsan');
}
//写法2
function createPerson(c:new (a: string) => IPerson): IPerson{return new c('zhangsan');
}
//写法3
// 抽象泛型,T可以理解为一个泛型变量,属于类型变量,这里属于IPerson,接口继承接口,实现接口的抽象
function createPerson <T extends IPerson>(c:new (a: string) => T): T{return new c('zhangsan');
}

注意两个ts配置:

"strictNullChecks": true,                         /* When type checking, take into account 'null' and 'undefined'. */
"strictPropertyInitialization": true,             /* Check for class properties that are declared but not set in the constructor. */

接口继承接口

接口继承接口,相当于接口的拓展。

interface Shape {color: string;
}interface Square extends Shape {sideLength: number;
}let a:Square = {color: 'white',sideLength: 60
}

一个接口可以继承多个接口,创建出多个接口的合成接口。

interface Shape {color: string;
}interface PenStroke {penWidth: number;
}interface Square extends Shape, PenStroke{sideLength: number;
}let a:Square = {color: 'white',sideLength: 60,penWidth: 30
}

type是类型别名,给交叉类型赋别名

type ShapeAndPenStroke = Shape & PenStroke
interface Square1 extends ShapeAndPenStroke{sideLength: number;
}

交叉类型:两个都包括:Shape & PenStroke

联合类型:两个取其一:Shape | PenStroke

类型断言

清楚地知道一个实体的类型,在赋值时人为确定类型,不需要ts进行类型推断。

两种写法:

  • as类型

  • <类型>

interface Shape {color: string;
}interface PenStroke {penWidth: number;
}interface Square extends Shape, PenStroke {sideLength: number;
}// let square = <Square>{};
let square = {} as Square;
square.color = "blue";
square.sideLength = 10;
square.penWidth = 5.0;

混合类型

混合类型:一个接口中有函数、有属性

interface Counter {(start: number): string;interval: number;reset(): void;
}function getCounter(): Counter {let counter = <Counter>function (start: number) { };counter.interval = 123;counter.reset = function () { };return counter;
}let c = getCounter();
c(10);
c.reset();
c.interval = 5.0;
http://www.mmbaike.com/news/62504.html

相关文章:

  • 绵阳市建设工程监督网站平台推广是做什么的
  • 惠州网站建设公司旺道seo怎么优化网站
  • 网站手机版模板免费下载宁波专业seo服务
  • 布吉做棋牌网站建设哪家便宜百度推广竞价开户
  • 合肥做网站怎么样网络销售哪个平台最好
  • 做网站建设哪家公司好seo站内优化技巧
  • wordpress怎么把分类弄成导航seo搜索引擎优化视频
  • 免费架设网站1688自然排名怎么做好
  • 香河做网站公司手机做网页的软件
  • 旅游网站的首页怎么做给企业做网站的公司
  • 网站每年费用网络营销成功案例介绍
  • 电子商务网站建设 ppt排名网
  • 做我女朋友网站百度收录快的发帖平台
  • 工商局网站建设查不到网站外链怎么发布
  • 成都公安网站备案seo搜索引擎优化服务
  • 亚马逊网站特色今晚比赛预测比分
  • 安徽省建设部网站官网百度推广首页
  • 沈阳网络建网站最有效的网络推广方式
  • 西藏住房和城乡建设厅网站市场宣传推广方案
  • 海珠区seo排名优化是什么
  • 仿站WordPress搜狗收录提交入口
  • 有服务器怎么做网站手机百度账号申请注册
  • 360企业自助建站营销百度app下载手机版
  • 劳动法24小时免费咨询公众号微博seo
  • 域名备案网站备案抖音搜索排名优化
  • 网站是怎么做排名的太原seo外包平台
  • 有做数学题的网站吗it培训机构
  • discuz轉wordpress优势的seo网站优化排名
  • 做一整套网站需要什么seo站群优化
  • 洛阳网站建设价格低app推广软件有哪些