1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/janpoem-define-props.js

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Object.defineProperties: упрощённая функция для работы с операциями

Инструкция по установке

npm install define-props
yarn add define-props

Описание функции

defineProps(obj, props, defaults)

obj в данный момент может быть только не undefined или null.

defaults должен иметь структуру {}, где допустимы следующие поля:

  • defaults.enumerable: определяет возможность перебора свойств объекта, по умолчанию — true;
  • defaults.writable: определяет возможность изменения значения свойства, по умолчанию — false;
  • defaults.configurable: определяет возможность удаления свойства из объекта, по умолчанию — false.

props может быть [], {} или функцией:

  • prop представляет собой объявление каждого свойства.
  • prop.value: значение свойства;
  • prop.get: метод getter;
  • prop.set: метод setter;
  • prop.enumerable: см. defaults;
  • prop.writable: см. defaults;
  • prop.configurable: см. defaults.

В процессе использования выяснилось, что есть проблемы с reference, поэтому на данный момент это объявление не используется. В следующей версии будет предложена опция clone для копирования значений объекта.

const a = defineProps({}, {
	// a.key1 = ‘value1’ 
	// enumerable = true, configurable = false, writable = false
	key1: 'value1',
	// a.key2 = 'value2'
	// 有 value 字段,则取 value 字段的值
	key2: {
		value:      'value2',
		enumerable: true,
		writable:   true
	},
	// a.key3 = {a: 11, b: 22}
	// 无 value 字段,则以整个 {} 作为值
	key3: {
		a: 11,
		b: 22,
	},
	// a.key4 = 'value4'
	// 以一个函数为值,则直接作为 getter
	key4: () => {
		return 'value4'
	},
	// a.key5 = 'value5'
	// 如果 {} 未指定 value 字段,但指定了 get 方法(set不算)
	key5: {
		get: () => {
			return 'value5'
		}
	},
	// a.key6 = undefined
	// 当值为 null or undefined 的时候,判断是否指定了 get 或 writable = true,否则将不会将该键值对写入到对象属性
	key6: null,
	// 同上
	key7: {
		value: null
	},
	// a.key8 = null
	// 由于该键允许写入,所以将 key8 写入到对象属性中
	key8: {
		value:    null,
		writable: true
	},
	// a.key9 = 'value9'
	// 因为 существует get ,所以 также будет записан key9 в объект
	key9: {
		value: null,
		get  : () => {
			return 'value9';
		}
	}
})

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Расширить Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://gitlife.ru/oschina-mirror/janpoem-define-props.js.git
git@gitlife.ru:oschina-mirror/janpoem-define-props.js.git
oschina-mirror
janpoem-define-props.js
janpoem-define-props.js
master