美文网首页
core-decorators

core-decorators

作者: VIAE | 来源:发表于2019-12-17 15:41 被阅读0次

core-decorators 提供修饰器:
@autobind 使得方法中的this对象,绑定原始对象。

import { autobind } from 'core-decorators';
class Person {
@autobind
getPerson() {
return this;
}
}
let person = new Person();
let getPerson = person.getPerson;
getPerson() === person;
// tru

@readonly 使得属性或方法不可写。

import { readonly } from 'core-decorators';
class Meal {
@readonly
entree = 'steak';
}
var dinner = new Meal();
dinner.entree = 'salmon';
// Cannot assign to read only property 'entree' of [object Object]

@override 检查子类的方法,是否正确覆盖了父类的同名方法,如果不正确会报错。

import { override } from 'core-decorators';
class Parent {
speak(first, second) {}
}
class Child extends Parent {
@override
speak() {}
// SyntaxError: Child#speak() does not properly override Parent#speak(first, second)
}
// or
class Child extends Parent {
@override
speaks() {}
// SyntaxError: No descriptor matching Child#speaks() was found on the prototype chain.
//
// Did you mean "speak"?
}

@deprecate (别名@deprecated) 在控制台显示一条警告,表示该方法将废除。

import { deprecate } from 'core-decorators';
class Person {
@deprecate
facepalm() {}
@deprecate('We stopped facepalming')
facepalmHard() {}
@deprecate('We stopped facepalming', { url: 'http://knowyourmeme.com/memes/facepalm' })
facepalmHarder() {}
}
let person = new Person();
person.facepalm();
// DEPRECATION Person#facepalm: This function will be removed in future versions.
person.facepalmHard();
// DEPRECATION Person#facepalmHard: We stopped facepalming
person.facepalmHarder();
// DEPRECATION Person#facepalmHarder: We stopped facepalming
//
// See http://knowyourmeme.com/memes/facepalm for more details.
//

@suppressWarnings 抑制deprecated修饰器导致的console.warn()调用。但是,异步代码发出的调用除外。

import { suppressWarnings } from 'core-decorators';
class Person {
@deprecated
facepalm() {}
@suppressWarnings
facepalmWithoutWarning() {
this.facepalm();
}
}
let person = new Person();
person.facepalmWithoutWarning();
// no warning is logged

文章来源于http://www.waibo.wang/bible/es6/html/21/21.4.html

相关文章

  • core-decorators

    core-decorators 提供修饰器:@autobind 使得方法中的this对象,绑定原始对象。 @re...

  • 装饰器模式

    ◆ 为对象添加新功能◆ 不改变其原有的结构和功能 应用场景:◆ ES7装饰器◆ core-decorators 装...

  • 装饰器模式 - 演示与场景

    为对象添加新功能 不改变其原有的结构和功能 UML类图: 使用场景:core-decorators API 下一个...

  • js 装饰器

    es7装饰器特性面向aop编程类库 core-decorators 设计原则 将现有对象和装饰器进行分离,两者独立...

  • RN修饰器core-decorators配置工作

    配置一下环境 配置一下babelrc文件 举个栗子? 请看? 好啦~到这里就完成配置可以使用了,是不是so esa...

网友评论

      本文标题:core-decorators

      本文链接:https://www.haomeiwen.com/subject/stgsnctx.html