Vinyl.isCustomProp()

2020-09-30 18:08 更新

Vinyl.isCustomProp()介紹

確定一個屬性是否由 Vinyl 在內(nèi)部進行管理。Vinyl 在構(gòu)造函數(shù)中設置值或在 clone() 實例方法中復制屬性時使用。

這種方法在擴展 Vinyl 類時很有用。詳情參見下文:擴展 Vinyl。

Vinyl.isCustomProp()用法

const Vinyl = require('vinyl');

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

Vinyl.isCustomProp()函數(shù)原型

Vinyl.isCustomProp(property)

參數(shù)

參數(shù)類型注解
propertystring要檢查的屬性名。

返回值

如果屬性不是內(nèi)部管理的,則為 True。

擴展 Vinyl

當在內(nèi)部管理自定義屬性時,必須擴展靜態(tài) 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 在克隆或?qū)?nbsp;options 傳遞給 new SuperFile(options) 時不會分配給新對象。

如果您的自定義屬性或邏輯在克隆期間需要特殊處理,請在擴展 Vinyl 時覆蓋 clone 方法。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號