本文整理汇总了TypeScript中@dojo/shim/object.assign函数的典型用法代码示例。如果您正苦于以下问题:TypeScript assign函数的具体用法?TypeScript assign怎么用?TypeScript assign使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了assign函数的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: createValuePropertyDescriptor
/**
* A function that produces a value property descriptor, which assumes that properties are enumerable, writable and configurable
* unless specified
*
* @param value The value for the descriptor
* @param writable Defaults to `true` if not specified
* @param enumerable Defaults to `true` if not specified
* @param configurable Defaults to `true` if not specified
*/
function createValuePropertyDescriptor(value: any, writable: boolean = true, enumerable: boolean = true, configurable: boolean = true): PropertyDescriptor {
return assign(objectCreate(null), {
value,
writable,
enumerable,
configurable
});
}
示例2: patchConstruct
function patchConstruct(target: any, record: ConstructRecord): any {
const { args, descriptor = defaultConstructDescriptor, Ctor, name, propertyRecords } = record;
const value = new Ctor(...(args || []));
if (propertyRecords) {
propertyRecords.forEach((record) => isConstructRecord(record) ? patchConstruct(value, record) : patchPatch(value, record));
}
defineProperty(target, name, assign({ value }, descriptor));
return target;
}
示例3: createConstructRecord
export function createConstructRecord(Ctor: Constructor, args?: any[], descriptor?: ConstructDescriptor): AnonymousConstructRecord {
const record: AnonymousConstructRecord = assign(objectCreate(null), { Ctor });
if (args) {
record.args = args;
}
if (descriptor) {
record.descriptor = descriptor;
}
return record;
}
示例4: createSpliceRecord
/**
* An internal function that returns a new splice record
*
* @param start Where in the array to start the splice
* @param deleteCount The number of elements to delete from the array
* @param add Elements to be added to the target
*/
function createSpliceRecord(start: number, deleteCount: number, add?: any[]): SpliceRecord {
const spliceRecord: SpliceRecord = assign(objectCreate(null), {
type: 'splice',
start,
deleteCount
});
if (add && add.length) {
spliceRecord.add = add;
}
return spliceRecord;
}
示例5: createPatchRecord
/* tslint:enable:variable-name */
/**
* An internal function that returns a new patch record
*
* @param type The type of patch record
* @param name The property name the record refers to
* @param descriptor The property descriptor to be installed on the object
* @param valueRecords Any subsequenet patch recrds to be applied to the value of the descriptor
*/
function createPatchRecord(type: PatchTypes, name: string, descriptor?: PropertyDescriptor, valueRecords?: (ConstructRecord | PatchRecord | SpliceRecord)[]): PatchRecord {
const patchRecord = assign(objectCreate(null), {
type,
name
});
if (descriptor) {
patchRecord.descriptor = descriptor;
}
if (valueRecords) {
patchRecord.valueRecords = valueRecords;
}
return patchRecord as PatchRecord;
}
示例6: diff
/**
* Get the difference of the `value`
* @param value The value to diff
* @param nameOrIndex A `string` if comparing a property or a `number` if comparing an array element
* @param parent The outer parent that this value is part of
*/
diff(value: T, nameOrIndex: string | number, parent: object): ConstructRecord | void {
const record = this._differ(value, nameOrIndex, parent);
if (record && typeof nameOrIndex === 'string') {
return assign(record, { name: nameOrIndex });
}
}