當前位置: 首頁>>代碼示例>>TypeScript>>正文


TypeScript immutability-helper類代碼示例

本文整理匯總了TypeScript中immutability-helper的典型用法代碼示例。如果您正苦於以下問題:TypeScript immutability-helper類的具體用法?TypeScript immutability-helper怎麽用?TypeScript immutability-helper使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


在下文中一共展示了immutability-helper類的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。

示例1: 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

示例2: TypeError

/**
 * 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

示例3: 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

示例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類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。