TypeError: sha256_1.default не является функцией

Я получаю ошибку ниже при использовании шутки для тестирования. Я использую здесь пакет npm, отличный от es6. Проблема возникает, когда я не хочу выполнять импорт подстановочных знаков *. Я хотел сделать явный импорт.

//code

import sha256 from "crypto-js/sha256";

export const GetHashToken = (value) => {
 return sha256(value);
};

//test

import { GetHashToken, GetUtcTimeStamp } from 
"../../utils/ScheduleRepairUtility";

describe("Get hash token utility", () => {
  it("Should return sha-256 hex digit string for given value", () => {
    const paramValue = "78436783465sears121212";   
    expect(GetHashToken(paramValue))
     .toBe("b87663752c7f5bf0967f74fd3523dece543
      f447e96d9b1d478c7336781e1828b");
  });
});

Получение ошибки:

●  Get hash token utility › Should return sha-256 hex digit string for 
   given value

TypeError: sha256_1.default is not a function

Я использую для своего проекта сценарий реакции. Любая помощь приветствуется.

Спасибо!!

К вашему сведению: все работает нормально, когда я делаю что-то вроде: import * as sha256 from "crypto-js"

Koushik1408 03.10.2018 02:37
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
2
1
2 492
2

Ответы 2

Я предполагаю, что модуль crypto-js/sha256 экспортирует функцию sha256 через назначение экспорта в стиле CommonJS (module.exports = sha256). Чтобы импортировать его, вам нужно либо использовать специальный синтаксис присваивания импорта TypeScript:

import sha256 = require("crypto-js/sha256");

или включите параметр компилятора esModuleInterop, который обеспечивает взаимодействие между импортом по умолчанию и назначениями экспорта.

Спасибо, Мэтт. Я заставил его работать, используя createHash из @ types / node вместо crypto-js / sha256.

Koushik1408 04.10.2018 07:53

Этот синтаксис сработал для меня

import * as sha256 from 'crypto-js/sha256';

Другие вопросы по теме