Как мне исправить ошибку Typescript в импортированной библиотеке

#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