TypeError: невозможно прочитать свойство toLowerCase неопределенного с помощью commerce.js

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

Я создаю сайт электронной коммерции, интегрирующий commerce.js, после импорта из @chec/commerce.js у меня появилось предупреждение (VS):

Could not find a declaration file for module '@chec/commerce.js'. '/Users/e-commerce/node_modules/@chec/commerce.js/lib/index.js' implicitly has an 'any' type.
  Try `npm install @types/chec__commerce.js` if it exists or add a new declaration (.d.ts) file containing `declare module '@chec/commerce.js';`ts(7016)

Всякий раз, когда я запускал локальный хост, как я и ожидал, я видел соответствующее сообщение об ошибке, хотя и не совсем такое же (ниже оно будет воспроизведено).
Поэтому я подумал: исправление сообщения об ошибке в VS, скорее всего, исправит и это. Мне удалось решить предупреждение, добавив новый файл объявления (потому что кажется, что упомянутый там пакет еще не существует) Итак, я подумал, что это так, затем я запустил сервер, и результат точно такой же, как и раньше.

TypeError: Cannot read property 'toLowerCase' of undefined
new e
node_modules/@chec/commerce.js/lib/index.js:1

Теперь, видимо, это первая строка файла index.js в node_modules. Хорошо, что там тогда написано? (я напишу здесь больше, чем только первую строчку, на всякий случай)


    var _objectWithoutProperties=require("@babel/runtime/helpers/objectWithoutProperties"),_toConsumableArray=require("@babel/runtime/helpers/toConsumableArray"),_typeof=require("@babel/runtime/helpers/typeof"),_defineProperty=require("@babel/runtime/helpers/defineProperty"),_classCallCheck=require("@babel/runtime/helpers/classCallCheck"),_createClass=require("@babel/runtime/helpers/createClass"),_regeneratorRuntime=require("@babel/runtime/regenerator"),_asyncToGenerator=require("@babel/runtime/helpers/asyncToGenerator"),axios=require("axios");function _interopDefaultLegacy(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}

Но это не единственный, ниже еще один жалуется на модуль коммерции

Module.<anonymous>
src/lib/commerce.js:4
  1 | // @ts-ignore
  2 | import Commerce from "@chec/commerce.js";
  3 | 
> 4 | export const commerce = new Commerce(
  5 |   process.env.REACT_APP_CHEC_PUBLIC_KEY,
  6 |   true
  7 | );

Что ж, теперь я немного запутался в сообщениях об ошибках, которые я все еще вижу, и поэтому хотел бы услышать, в чем, по вашему мнению, может быть проблема?

Я также проверяю некоторые сообщения здесь, такие как Реагирование машинописного текста — Не удалось найти файл объявления для модуля «реагировать-материализоваться». 'path/to/module-name.js' неявно имеет любой тип и связанный
Кстати, я не использую машинопись.

Заранее спасибо.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
690
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Вот несколько быстрых шагов, которые должны помочь:

  • Перейти в папку /src
  • И создайте этот файл chec-commerce.d.ts
    The d сообщает TypeScript, что это скрипт объявления.
  • Внутри только что созданного файла напишите следующее:
declare module '@chec/commerce';

В зависимости от того, как вы импортируете модуль, это должно устранить все ошибки.
Любезно подтвердить.

Спасибо за ваше время. Я уже делал это раньше. Вот как я исправил предупреждения, которые я получил в VS. Но сообщение об ошибке, которое я получаю при запуске сервера, все еще там.

mauro avellaneda 11.12.2020 12:21

Можете ли вы добавить нумерацию к ошибкам для лучшей видимости, чтобы я обновил ответ здесь?

MwamiTovi 11.12.2020 13:06

что ты имеешь в виду?

mauro avellaneda 11.12.2020 14:27

Я имею в виду обновить описание, чтобы иметь список, например. 1. объявить модуль, 2, 3 и т. д.

MwamiTovi 12.12.2020 10:47
Ответ принят как подходящий

Файл .env должен находиться вне папки src, и он работает для меня, он также будет работать и для вас...

@Joseph Как это ответ "спасибо"? Это предполагает, что файл не должен быть в папке src, что выглядит как ответ для меня (хотя я не знаю, правильно ли это), и хотя он кажется некачественным, это все же ответ.

Mark Rotteveel 13.12.2020 10:27

Спасибо за информацию . Я всегда буду помнить этого @joseph

Ankush 13.12.2020 10:27

@MarkRotteveel извините за мою ошибку

Joseph 13.12.2020 10:40

Это было на самом деле так. Как неуклюже с моей стороны, но поскольку я видел других людей с такой же проблемой, и никто никогда не упоминал файл env, я совершенно забыл об этом.

mauro avellaneda 15.12.2020 15:36

У меня была точно такая же ошибка, она исчезла, как только я переместил файл .env за пределы папки src/. Также не использую TypeScript.

Замените это:

export const commerce = new Commerce(process.env.REACT_APP_CHEC_PUBLIC_KEY, true);

с

export const commerce = new Commerce('PUBLIC_API_KEY', true);

Я не мог исправить это по-другому.

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