Ошибка типа: Не удается прочитать свойство «фракция» неопределенного — Cypress/Javascript

#javascript #cypress

Вопрос:

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

Я пытаюсь использовать их для настройки дроби и определения формата коэффициентов:

https://mathjs.org/docs/datatypes/fractions.html

Как мне устранить ошибку этого типа, описанную выше.

Скриншот:

введите описание изображения здесь

Комментарии:

1. Вы должны задать только один вопрос.

2. Ах, не беспокойтесь, я обновил вопрос, включив в него только 1 вопрос 🙂

3. Вы определили, что происходит не так с mathjs import ? Ошибка означает, что math это undefined так .

4. @Pointy, Так что я знаю, что установка npm прошла нормально, похоже, что она импортирована в mathjs нормально, но опять же не знаю, почему не определено. Я включил скриншот выше

5. Если бы mathjs был импортирован «нормально», то math этого не было undefined бы .

Ответ №1:

Экспорт по mathjs умолчанию отсутствует, поэтому вы импортируете все ( * ), а затем называете это в своем импорте

 import * as math from 'mathjs'
 

Это основная точка входа для mathjs пакета.

 // configuration
export { config } from './configReadonly.js'

// functions and constants
export * from './pureFunctionsAny.generated.js'
export * from './impureFunctionsAny.generated.js'
export * from './typeChecks.js'

// error classes
export { IndexError } from '../error/IndexError.js'
export { DimensionError } from '../error/DimensionError.js'
export { ArgumentsError } from '../error/ArgumentsError.js'

// dependency groups
export * from './dependenciesAny.generated.js'

// factory functions
export * from '../factoriesAny.js'

// core
export { create } from '../core/create.js'
export { factory } from '../utils/factory.js'
 

Если бы у него был экспорт по умолчанию, то было бы

 export default {
  function1,
  function2,
  function3,
  ...
}
 

и тогда вы сможете импортировать его без использования * as math .

Ответ №2:

Если вы хотите использовать только fraction то, что вы можете использовать:

 const { fraction } = require("mathjs");

//In your test
fraction(oddsValue);
 

Если вы хотите использовать и других, вы можете сделать:

 import { create, all } from "mathjs"
const math = create(all, {})

//In your test
math.fraction(oddsValue)