阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

    教程列表

    数据库
    抓包专区
    测试专区

    Gulp Vinyl.isCustomProp()

    Vinyl.isCustomProp()

    确定一个属性是否由 Vinyl 在内部进行管理。Vinyl 在构造函数中设置值或在 clone() 实例方法中复制属性时使用。

    这种方法在扩展 Vinyl 类时很有用。详情参见下文:扩展 Vinyl。

    用法

    const Vinyl = require('vinyl');
    
    Vinyl.isCustomProp('sourceMap') === true;
    Vinyl.isCustomProp('path') === false;
    

    函数原型

    Vinyl.isCustomProp(property)
    

    参数

    参数 类型 注解
    property string 要检查的属性名。

    返回值

    如果属性不是内部管理的,则为 True。

    扩展 Vinyl

    当在内部管理自定义属性时,必须扩展静态 isCustomProp 方法,并在查询其中一个自定义属性时返回 false。

    const Vinyl = require('vinyl');
    
    const builtInProps = ['foo', '_foo'];
    
    class SuperFile extends Vinyl {
      constructor(options) {
        super(options);
        this._foo = 'example internal read-only value';
      }
    
      get foo() {
        return this._foo;
      }
    
      static isCustomProp(name) {
        return super.isCustomProp(name) && builtInProps.indexOf(name) === -1;
      }
    }
    

    在上面的例子中,foo_foo 在克隆或将 options 传递给 new SuperFile(options) 时不会分配给新对象。

    如果您的自定义属性或逻辑在克隆期间需要特殊处理,请在扩展 Vinyl 时覆盖 clone 方法。

    卖前端学习教程

    只需几十元,就能买到培训班的内部教程!开启高薪之路!

    零基础小白阿里P7的教程都有!

    同时长期收购所有培训班的前端教程

    目录
    目录