«Navbar относится к значению, но здесь используется как тип» при попытке отобразить неглубокую копию моего компонента пр ⇐ Javascript
-
Гость
«Navbar относится к значению, но здесь используется как тип» при попытке отобразить неглубокую копию моего компонента пр
Я пытаюсь написать тест для своего компонента React, используя TypeScript, Jest в качестве средства запуска тестов и Enzyme для тестирования моих компонентов React. Всякий раз, когда я передаю свой компонент в функцию shallow Enzyme, я получаю ошибку ts: «Navbar» относится к значению, но здесь используется как тип.», а под ней я получаю ошибку eslint « Ошибка синтаксического анализа: ожидается '>'».
Я пробовал это на некоторых других компонентах, все они имеют одну и ту же ошибку при передаче в функцию shallow в качестве аргументов. Я подозреваю, что это может иметь какое-то отношение к моим конфигурациям TS, но, хоть убей, я не могу найти решение.
Вот код Navbar.tsx:
импортировать React из 'реагировать'; импортировать {мелко} из "фермента"; импортировать Navbar из «./Navbar»; описать('Компонент навигационной панели', () => { пусть компонент; beforeEach(() => { компонент = мелко(); // Здесь отображается ошибка }); it('должно отрисовываться без ошибок', () => { ожидать (компонент).toMatchInlineSnapshot(); ожидать (компонент.длина).toBe(1); ожидать (компонент).toBeTruthy(); }); }); Также публикую свои файлы конфигурации:
tsconfig:
{ "Параметры компилятора": { "цель": "es5", "либ": [ "дом", "дом.итеративный", "эснекст" ], «allowJs»: правда, «skipLibCheck»: правда, «esModuleInterop»: правда, «allowSyntheticDefaultImports»: правда, «строгий»: правда, «forceConsistentCasingInFileNames»: правда, "модуль": "эснекст", "moduleResolution": "узел", «resolveJsonModule»: правда, «изолированныеМодули»: правда, «noEmit»: правда, "jsx": "реагировать" }, "parserOptions": { «ecmaVersion»: 6, "sourceType": "модуль", "ecmaFeatures": { «jsx»: правда } }, "включить": ["src/**/*"], "exclude": ["node_modules", "**/*.spec.ts", "**/*.test.ts"] } jest.config.ts:
module.exports = { корни: ['/src'], преобразовать: { '^.+\\.tsx?$': 'ts-jest', }, testRegex: '(/__tests__/.*|(\\.|/)(test|spec))\\.tsx?$', ModuleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'], snapshotSerializers: ['энзим-в-json/сериализатор'], setupTestFrameworkScriptFile: '/src/setupEnzyme.ts', }; Настройка фермента:
import { configure } из «энзима»; импортировать адаптер из «enzyme-adapter-react-16»; импортировать «джест-фермент»; configure({ адаптер: новый адаптер(), отключитьLifecycleMethods:
Я пытаюсь написать тест для своего компонента React, используя TypeScript, Jest в качестве средства запуска тестов и Enzyme для тестирования моих компонентов React. Всякий раз, когда я передаю свой компонент в функцию shallow Enzyme, я получаю ошибку ts: «Navbar» относится к значению, но здесь используется как тип.», а под ней я получаю ошибку eslint « Ошибка синтаксического анализа: ожидается '>'».
Я пробовал это на некоторых других компонентах, все они имеют одну и ту же ошибку при передаче в функцию shallow в качестве аргументов. Я подозреваю, что это может иметь какое-то отношение к моим конфигурациям TS, но, хоть убей, я не могу найти решение.
Вот код Navbar.tsx:
импортировать React из 'реагировать'; импортировать {мелко} из "фермента"; импортировать Navbar из «./Navbar»; описать('Компонент навигационной панели', () => { пусть компонент; beforeEach(() => { компонент = мелко(); // Здесь отображается ошибка }); it('должно отрисовываться без ошибок', () => { ожидать (компонент).toMatchInlineSnapshot(); ожидать (компонент.длина).toBe(1); ожидать (компонент).toBeTruthy(); }); }); Также публикую свои файлы конфигурации:
tsconfig:
{ "Параметры компилятора": { "цель": "es5", "либ": [ "дом", "дом.итеративный", "эснекст" ], «allowJs»: правда, «skipLibCheck»: правда, «esModuleInterop»: правда, «allowSyntheticDefaultImports»: правда, «строгий»: правда, «forceConsistentCasingInFileNames»: правда, "модуль": "эснекст", "moduleResolution": "узел", «resolveJsonModule»: правда, «изолированныеМодули»: правда, «noEmit»: правда, "jsx": "реагировать" }, "parserOptions": { «ecmaVersion»: 6, "sourceType": "модуль", "ecmaFeatures": { «jsx»: правда } }, "включить": ["src/**/*"], "exclude": ["node_modules", "**/*.spec.ts", "**/*.test.ts"] } jest.config.ts:
module.exports = { корни: ['/src'], преобразовать: { '^.+\\.tsx?$': 'ts-jest', }, testRegex: '(/__tests__/.*|(\\.|/)(test|spec))\\.tsx?$', ModuleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'], snapshotSerializers: ['энзим-в-json/сериализатор'], setupTestFrameworkScriptFile: '/src/setupEnzyme.ts', }; Настройка фермента:
import { configure } из «энзима»; импортировать адаптер из «enzyme-adapter-react-16»; импортировать «джест-фермент»; configure({ адаптер: новый адаптер(), отключитьLifecycleMethods:
Мобильная версия