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

现在还可以做夺宝网站潍坊免费做网站

现在还可以做夺宝网站,潍坊免费做网站,有没有免费做编辑网站管理系统,中国企业网官方网站下载1、命名空间 命名空间#xff1a;在代码量较大的情况下#xff0c;为了避免各种变量命名的冲突#xff0c;可将相似功能的函数、类、接口等放置到命名空间内。同Java的包.Net的命名空间一样#xff0c;typescript 的命名空间可以将代码包裹起来#xff0c;只对外暴露需要在…1、命名空间 命名空间在代码量较大的情况下为了避免各种变量命名的冲突可将相似功能的函数、类、接口等放置到命名空间内。同Java的包.Net的命名空间一样typescript 的命名空间可以将代码包裹起来只对外暴露需要在外部访问的对象 命名空间和模块的区别 命名空间内部模块主要用于组织代码避免命名冲突。  模块ts的外部模块的简称侧重代码的复用一个模块里可能会有多个命名空间。 namespace A {interface Animal {name: string;eat(): void}export class Dog implements Animal {name: string;constructor(name: string) {this.name name}eat() {console.log(${this.name}汪汪);}}class Cat implements Animal {name: string;constructor(name: string) {this.name name}eat() {console.log(${this.name}喵喵);}}}// 想在外部使用命名空间里的方法 需要先暴露 命名空间.调用 let d new A.Dog(小狗) d.eat();/* 也可以将命名空间模块化引入export namespace A */2、装饰器 装饰器是一种特殊类型的声明它能够被附加到类声明方法属性或参数上可以修改类的行为。 通俗的讲装饰器就是一个方法可以注入到类、方法、属性参数上来扩展类、属性、方法、参数的功能。 常见的装饰器有类装饰器、属性装饰器、方法装饰器、参数装饰器 装饰器的写法普通装饰器无法传参、装饰器工厂可传参 1类装饰器类装饰器是在类声明之前被声明紧靠着类声明 。类装饰器应用于类构造函数可以用来监视修改或替换类定义。传入一个参数 普通装饰器 function logClass(params: any) {// params 就是当前类console.log(params, params);// 动态扩展属性params.prototype.apiUrl http://params.prototype.run function () {console.log(我是扩展的方法);} } // 调用装饰器 logClass class HttpClient {constructor() {}getData() {} } var http new HttpClient() console.log(http.apiUrl); http.run() 装饰器工厂可传参 function logClass(params: string) {return function (target: any) {console.log(target, 当前类);console.log(params, 接收的参数);target.prototype.apiUrl params} } logClass(http://) class HttpClient {constructor() {}getData() {} } var http new HttpClient console.log(http.apiUrl);类装饰器 重载构造函数 类装饰器表达式会在运行时当作函数被调用类的构造函数作为其唯一的参数 如果类装饰器返回一个值它会使用提供的构造函数来替换类的声明 function logClass(target: any) {console.log(target, target);// 在装饰器里重载constructorreturn class extends target {apiUrl: any 我修改了getData() {this.apiUrl this.apiUrl ---console.log(this.apiUrl);}} } logClass class HttpClient {public apiUrl: string | undefinedconstructor() {this.apiUrl 我是构造函数的apiUrl}getData() {console.log(this.apiUrl);} } var http new HttpClient() http.getData() 2属性装饰器属性装饰器表达式会在运行时当作函数被调用传入2个参数。 1、对于静态成员来说是类的构造函数对于实例成员来说是类的原型对象 2、成员的名字 // 属性装饰器 function logProperty(params: any) {// target 类的原型对象return function (target: any, attr: any) {console.log(target, 类的原型对象);console.log(attr, 属性名);console.log(params, 属性传入的值);target[attr] params}}logClass(类的传参) class HttpClient {logProperty(http)public url: any | undefinedconstructor() { }getData() {console.log(this, url);} } var http new HttpClient() http.getData() 3方法装饰器它会被应用到方法的属性描述符上可以用来监视修改或者替换方法定义。 方法装饰会在运行时传入下列3个参数 1、对于静态成员来说是类的构造函数对于实例成员是类的原型对象 2、成员的名字 3、成员的属性描述符 function get(params: any) {return function (target: any, methodName: any, desc: any) {console.log(target, 原型对象);console.log(methodName, 方法名);console.log(desc, 描述);target.apiUrl hahahatarget.run function () {console.log(run);}/* 修改装饰器的方法把装饰器方法里面传入的所有参数改为string类型1、保存当前方法*/var oMethed desc.valuedesc.value function (...args: any[]) {args args.map((value) {return String(value)})console.log(args, args);// 使用对象冒充修改当前方法否则会替换原方法oMethed.apply(this, args)}} }class HttpClient {public url: any | undefinedconstructor() { }get(http://)getData(...args: any[]) {console.log(args);console.log(this.url, 我是getData);} }var http: any new HttpClient() console.log(http.apiUrl, apiUrl); http.run() http.getData(132, 8545)
http://www.hkea.cn/news/14436334/

相关文章:

  • 怎样打开用sql做的网站连云港网站建设网站
  • 良品铺子网站制作上海建设工程造价协会官网
  • 个人可以备案网站的内容装修3d效果图怎么制作
  • 福州企业制作网站线上推广是什么意思
  • 南京 网站建设淘宝指数查询官网手机版
  • 泰州哪家网做网站广西桂林旅游必去十大景点
  • 服务提供网站北京朝阳区天气预报
  • 网站优化策略网站搭建推广优化
  • 网站后台表格搭建网站的大致流程
  • 河南网站优化要多少钱网络销售网站外包
  • 电子商务网站开发教程课后习题企业网站制作与维护
  • 西安网站建设企业佛山网站建设专业公司
  • 公司网站建设怎么协调内容与保密宁波城乡建设局网站
  • wap建站工具网页微博怎么下载视频
  • php网站模板开源虫部落导航网站怎么做
  • 网站设计概述500字企业自助建站程序
  • 山东经济建设网站河南省精品旅游线路发布
  • 遵义新蓝外国语学校网站建设3322做网站
  • 企业建站系统免费竞价如何屏蔽恶意点击
  • 北京市建设工程质监站网站免费咨询心理情感专家
  • 自己的网站怎样做优化wordpress主题授权系统
  • 门户网站建设招标书云主机建网站软件
  • 岳阳网站推广国内专业seo公司
  • 做行程好的网站wordpress子主题插件
  • 莱西市城乡建设局网站招标网站哪个比较好
  • git做网站根目录票务网站开发端口
  • 行业网站建设网站快照优化公司
  • 高端网站建设与发展wordpress本地网站上传
  • 网站建设一般要多钱品牌推广图片
  • 长治市建设厅官方网站制作免费网站的平台