【问题标题】:Could not find a declaration file for module 'react-faq-component'找不到模块“react-faq-component”的声明文件
【发布时间】:2021-08-25 19:04:29
【问题描述】:

我正在尝试使用react-faq-component,但遇到了问题。我或多或少地复制了与链接中相同的示例(带有额外的打字)。

到目前为止,我的代码如下所示:

index.tsx

import React from "react"
import Faq from "react-faq-component"

interface PropTypes {
    data: {
        title: string,
        rows: [{
            title: string,
            content: string
        }]
    },
    styles: any,
}

const data = {
    title: "FAQ (How it works)",
    rows: [
        {
            title: "Lorem ipsum dolor sit amet,",
            content: `Lorem ipsum dolor sit amet, consectetur adipiscing elit. In sed tempor sem. Aenean vel turpis feugiat,
              ultricies metus at, consequat velit. Curabitur est nibh, varius in tellus nec, mattis pulvinar metus.
              In maximus cursus lorem, nec laoreet velit eleifend vel. Ut aliquet mauris tortor, sed egestas libero interdum vitae.
              Fusce sed commodo purus, at tempus turpis.`,
        },
        {
            title: "Nunc maximus, magna at ultricies elementum",
            content:
                "Nunc maximus, magna at ultricies elementum, risus turpis vulputate quam, vitae convallis ex tortor sed dolor.",
        },
        {
            title: "Curabitur laoreet, mauris vel blandit fringilla",
            content: `Curabitur laoreet, mauris vel blandit fringilla, leo elit rhoncus nunc, ac sagittis leo elit vel lorem.
            Fusce tempor lacus ut libero posuere viverra. Nunc velit dolor, tincidunt at varius vel, laoreet vel quam.
            Sed dolor urna, lobortis in arcu auctor, tincidunt mattis ante. Vivamus venenatis ultricies nibh in volutpat.
            Cras eu metus quis leo vestibulum feugiat nec sagittis lacus.Mauris vulputate arcu sed massa euismod dignissim. `,
        },
        {
            title: "What is the package version",
            content: "3.2"
        },
    ],
}

const styles = {
    // bgColor: 'white',
    titleTextColor: "blue",
    rowTitleColor: "blue",
    // rowContentColor: 'grey',
    // arrowColor: "red",
}

const config = {
    // animate: true,
    // arrowIcon: "V",
    // tabFocus: true
}

export default function Faq({ data }: PropTypes) {
    return (
        <Faq
            data={data}
            styles={styles}
            //config={config}
        />
    )
}

但是,当我运行 npm start 时,我收到以下错误:

找不到模块“react-faq-component”的声明文件。 隐含地具有“任何”类型。尝试npm i --save-dev @types/react-faq-component(如果存在)或添加新声明 (.d.ts) 文件包含declare module 'react-faq-component';

我什至按照它的建议运行了npm i --save-dev @types/react-faq-component,但此后我得到的错误是:

错误! 404 未找到 - 获取 https://registry.npmjs.org/@types%2freact-faq-component - 未找到

【问题讨论】:

  • @types 包来自存储库:github.com/DefinitelyTyped/DefinitelyTyped 某些包本身可能不包含 typescript 声明,包所有者选择将其包含到DefinitelyTyped 存储库中。这个包可能没有 typescript 声明,这就是你不能安装它的原因。
  • 抱歉,我不太明白。那么在这种情况下我需要做什么呢?

标签: reactjs react-native npm react-hooks


【解决方案1】:

所以,正如建议所说,我们有 2 个选项来解决它。

  1. 安装类型文件。 (在这种情况下不起作用)。

  2. 创建一个 .d.ts 文件并在其中声明模块。

src 文件夹中创建一个新文件,如exports.d.ts 并在其中写入

declare module 'react-faq-component';

还有第三种选择。在 tsconfig 文件中将"noImplicitAny" 改成false

【讨论】:

  • 谢谢!我使用了“noImplicityAny”方法并且它有效。这到底是什么意思?
  • 因此,当 Typescript 无法确定变量、声明等的类型时,它会回退到“any”类型。然而,在某些情况下,TS 隐含的任何假设都可能导致问题。为了防止这种情况发生,noImplicitAny 设置为 true,这告诉 TS 不要确定任何无类型变量的类型。
猜你喜欢
  • 2019-03-16
  • 2019-07-26
  • 2021-02-21
  • 2017-05-29
  • 1970-01-01
  • 2022-06-12
  • 2022-11-06
  • 2021-01-18
  • 2021-09-03
相关资源
最近更新 更多