当前位置: 首页>>代码示例>>TypeScript>>正文


TypeScript immutability-helper.default方法代码示例

本文整理汇总了TypeScript中immutability-helper.default方法的典型用法代码示例。如果您正苦于以下问题:TypeScript immutability-helper.default方法的具体用法?TypeScript immutability-helper.default怎么用?TypeScript immutability-helper.default使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在immutability-helper的用法示例。


在下文中一共展示了immutability-helper.default方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。

示例1: ensurePath

/**
 * Ensures that `state` has a series of nested objects matching the keys defined
 * in `path`.
 *
 * If any are missing, they will be built. The original `state` and its children
 * are **not** mutated.
 */
export default function ensurePath(value:{}, path:string[]):{} {
  if (!_.every(path, _.isString)) {
    throw new TypeError(`fillPath can only construct objects. Please pass string keys for the path.`);
  }

  // Fill in all missing keys along the path.
  let node:{} = value;
  for (let i = 0; i < path.length; i++) {
    let key = path[i];
    if (_.isUndefined(node[key])) {
      let missing    = _.reduce(path.slice(i).reverse(),    (s, k) => ({[k]: s}), {});
      let expression = _.reduce(path.slice(0, i).reverse(), (s, k) => ({[k]: s}), {$merge: missing});
      value = update(value, expression);
      break;
    }

    node = node[key];
  }

  return value;
}
开发者ID:convoyinc,项目名称:deep-update,代码行数:28,代码来源:ensurePath.ts

示例2: toggleComplete

  /**
   * Toggle the complete state of an item by.
   *
   * Will call updateItem function to update complete state of this item.
   */
  public toggleComplete(item: ITodoItem): Promise<ITodoItem[]> {
    // Create a new Item in which the PercentComplete value has been changed.
    const newItem: ITodoItem = update(item, {
      isComplete: { $set: item.isComplete === true ? false : true }
    });

    return new Promise<ITodoItem[]>((resolve, reject) => {
      const index: number =
        findIndex(
          this.items,
          (current: ITodoItem) => current.id === newItem.id
        );
      if (index !== -1) {
        this.items[index] = newItem;
        this.items = this.items.slice(0);
        resolve(this.items);
      } else {
        reject(new Error(`Item to update doesn't exist.`));
      }
    });
  }
开发者ID:ThomasMichon,项目名称:office-ui-fabric-react,代码行数:26,代码来源:DataProvider.ts

示例3: update

/// <reference path="immutability-helper.d.ts"/>

import * as update from 'immutability-helper';
import { newContext } from 'immutability-helper';

namespace TestObjectUpdate {
  update({}, {
    foo: {
      bar: { $set: 'baz' }
    }
  });
}

namespace TestArrayUpdate {
  update([], {
    foo: {
      bar: { $set: 'baz' }
    }
  });
}

namespace TestExtend {
  update.extend('$command', (specValue, originalValue) => originalValue);
}

namespace TestNewContext {
  update.newContext().extend('$command', (specValue, originalValue) => originalValue);
  newContext().extend('$command', (specValue, originalValue) => originalValue);

  // This shouldn't compile, but we can't test negatives.
  // newContext().newContext();
开发者ID:1drop,项目名称:DefinitelyTyped,代码行数:31,代码来源:immutability-helper-tests.ts

示例4: deepUpdate

/**
 * Similar to react-addons-update, except that it will ensure that any keys
 * leading up to the update expression are created (rather than throwing).
 *
 * For example:
 *
 *   deepUpdate(value, ['entities', 'currentUser'], {$set: {id: 'abc123'}});
 *
 */
function deepUpdate(value:{}, path:string[], spec:{}):{} {
  value = ensurePath(value, path);
  let expression = _.reduce([...path].reverse(), (s, k) => ({[k]: s}), spec);

  return update(value, expression);
}
开发者ID:convoyinc,项目名称:deep-update,代码行数:15,代码来源:index.ts


注:本文中的immutability-helper.default方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。