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


TypeScript jest-get-type.isPrimitive函数代码示例

本文整理汇总了TypeScript中jest-get-type.isPrimitive函数的典型用法代码示例。如果您正苦于以下问题:TypeScript isPrimitive函数的具体用法?TypeScript isPrimitive怎么用?TypeScript isPrimitive使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


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

示例1: constructor

  constructor(value: unknown) {
    if (isPrimitive(value)) {
      throw new TypeError(
        [
          'Primitives cannot leak memory.',
          'You passed a ' + typeof value + ': <' + prettyFormat(value) + '>',
        ].join(' '),
      );
    }

    let weak;

    try {
      // eslint-disable-next-line import/no-extraneous-dependencies
      weak = require('weak');
    } catch (err) {
      if (!err || err.code !== 'MODULE_NOT_FOUND') {
        throw err;
      }

      throw new Error(
        'The leaking detection mechanism requires the "weak" package to be installed and work. ' +
          'Please install it as a dependency on your main project',
      );
    }

    weak(value, () => (this._isReferenceBeingHeld = false));
    this._isReferenceBeingHeld = true;

    // Ensure value is not leaked by the closure created by the "weak" callback.
    value = null;
  }
开发者ID:facebook,项目名称:jest,代码行数:32,代码来源:index.ts

示例2: getPath

export const getPath = (
  object: object,
  propertyPath: string | Array<string>,
): GetPath => {
  if (!Array.isArray(propertyPath)) {
    propertyPath = (propertyPath as string).split('.');
  }

  if (propertyPath.length) {
    const lastProp = propertyPath.length === 1;
    const prop = propertyPath[0];
    const newObject = (object as any)[prop];

    if (!lastProp && (newObject === null || newObject === undefined)) {
      // This is not the last prop in the chain. If we keep recursing it will
      // hit a `can't access property X of undefined | null`. At this point we
      // know that the chain has broken and we can return right away.
      return {
        hasEndProp: false,
        lastTraversedObject: object,
        traversedPath: [],
      };
    }

    const result = getPath(newObject, propertyPath.slice(1));

    if (result.lastTraversedObject === null) {
      result.lastTraversedObject = object;
    }

    result.traversedPath.unshift(prop);

    if (lastProp) {
      // Does object have the property with an undefined value?
      // Although primitive values support bracket notation (above)
      // they would throw TypeError for in operator (below).
      result.hasEndProp =
        newObject !== undefined || (!isPrimitive(object) && prop in object);

      if (!result.hasEndProp) {
        result.traversedPath.shift();
      }
    }

    return result;
  }

  return {
    lastTraversedObject: null,
    traversedPath: [],
    value: object,
  };
};
开发者ID:Volune,项目名称:jest,代码行数:53,代码来源:utils.ts

示例3: getPath

const replaceKeyPathWithValue = (template: Template) => (
  title: string,
  match: string,
) => {
  const keyPath = match.replace('$', '').split('.');
  const value = getPath(template, keyPath);

  if (isPrimitive(value)) {
    return title.replace(match, String(value));
  }
  return title.replace(match, pretty(value, {maxDepth: 1, min: true}));
};
开发者ID:Volune,项目名称:jest,代码行数:12,代码来源:template.ts

示例4: matcherHint

 : () =>
     matcherHint(matcherName, undefined, undefined, options) +
     '\n\n' +
     printExpectedConstructorName('Expected constructor', expected) +
     (isPrimitive(received) || Object.getPrototypeOf(received) === null
       ? `\nReceived value has no prototype\nReceived value: ${printReceived(
           received,
         )}`
       : typeof received.constructor !== 'function'
       ? `\nReceived value: ${printReceived(received)}`
       : printReceivedConstructorName(
           'Received constructor',
           received.constructor,
         ));
开发者ID:facebook,项目名称:jest,代码行数:14,代码来源:matchers.ts

示例5: getType

const isDiffable = (expected: unknown, received: unknown): boolean => {
  const expectedType = getType(expected);
  const receivedType = getType(received);

  if (expectedType !== receivedType) {
    return false;
  }

  if (isPrimitive(expected)) {
    // Print diff only if both strings have more than one line.
    return (
      typeof expected === 'string' &&
      typeof received === 'string' &&
      MULTILINE_REGEXP.test(expected) &&
      MULTILINE_REGEXP.test(received)
    );
  }

  if (
    expectedType === 'date' ||
    expectedType === 'function' ||
    expectedType === 'regexp'
  ) {
    return false;
  }

  if (expected instanceof Error && received instanceof Error) {
    return false;
  }

  if (
    expectedType === 'object' &&
    typeof (expected as any).asymmetricMatch === 'function'
  ) {
    return false;
  }

  if (
    receivedType === 'object' &&
    typeof (received as any).asymmetricMatch === 'function'
  ) {
    return false;
  }

  return true;
};
开发者ID:facebook,项目名称:jest,代码行数:46,代码来源:index.ts


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