#typescript #next.js #react-typescript
#typescript #next.js #реагировать-typescript
Вопрос:
У меня ошибка Typescript, которую я не могу устранить, поскольку ее нет в моем коде. Я импортирую модуль NextJS / React под названием next-seo и использую его по назначению:
<NextSeo config={seoConfig} />
Он генерирует следующую ошибку:
JSX element type 'NextSeo' does not have any construct or call signatures
Он делает то же самое, если я удаляю атрибут config, так что это не так, похоже, это ошибка в самой библиотеке, поэтому я понятия не имею, как я могу продолжать использовать его, не заставляя автора исправить это. Или я ошибаюсь в этом?
РЕДАКТИРОВАТЬ: добавлена дополнительная информация
Импорт очень прост
import NextSeo from 'next-seo'
Комментарии:
1. Недостаточно информации. Откуда берутся определения типов? TS, похоже, знает о типе, связанном с
NextSeo
… как? Как насчет ваших операторов импорта… что они импортируют?2. я добавил столько информации, сколько у меня есть. Я не добавил больше, потому что на самом деле в этом больше ничего нет, просто очень простой импорт и использование в теге, 3 строки кода достаточно, чтобы вызвать проблему. Я не знаю, существует ли определение типа или когда я мог бы его найти, но VS code ни на что не ссылается, как показано на скриншоте.
Ответ №1:
import { NextSeo } from 'next-seo';
обратите внимание на завитушки.
Смотрите https://www.npmjs.com/package/next-seo#add-seo-to-page
Комментарии:
1. Спасибо, похоже, это сработало. Странно то, что он работает в моих проектах, не связанных с typescript, как и раньше, поэтому я предполагаю, что он экспортирует основную функцию как экспорт по умолчанию, так и именованный экспорт. Странно.
2. @jonhobbs Определение типа в пакете, похоже, не учитывает упомянутый вами экспорт по умолчанию, отсюда и проблема, с которой вы столкнулись: cdn.jsdelivr.net/npm/next-seo@4.17.0/lib/index.d.ts