Vinyl.isCustomProp()#

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

在扩展 Vinyl 类时,此方法非常有用。详细内容请参见下面的 扩展 Vinyl

用法#

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

签名#

Vinyl.isCustomProp(property)

参数#

参数类型说明
propertystring要检查的属性名称。

返回值#

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

扩展 Vinyl#

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

const Vinyl = require('vinyl');
const builtInProps = ['foo', '_foo'];
超级文件 继承 乙烯基 {
构造函数(选项) {
超级(选项);
._foo = '示例内部只读值';
}
获取 foo() {
返回 ._foo;
}
static isCustomProp(name) {
return super.isCustomProp(name) && builtInProps.indexOf(name) === -1;
}
}

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

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