typescript 和样式化组件在导入时出错

pcww981p  于 2023-01-03  发布在  TypeScript
关注(0)|答案(3)|浏览(173)

以使用 typescript 创建的create-react-app应用程序为例:

npx create-react-app myapp --template typescript
cd myapp
npm install styled-components@5.0.1

然后将样式化组件添加到 typescript 文件MyButton. tsx中。

import React from 'react';
import styled from 'styled-components';  // <<<<< THIS LINE CAUSES ERROR

const MyButtonStyle = styled.button`
  background: #9590eb;
  border-radius: 3px;
  border: none;
  color: white;
`;

/**
 * MyButton is a wrapper around a Button component.  Props/arguments are:
 * onClick(event:object) => void
 * style: Pass style onto <button> element
 */
function MyButton(props:any) {
    return (
        <MyButtonStyle style={props.style} type="button" onClick={props.onClick}>{props.children}</MyButtonStyle>
    );
}

export default MyButton;

我得到了错误

TypeScript error in .../MyButton.tsx(2,20): Could not find a declaration file for module 'styled-components'. '.../myapp/node_modules/styled-components/dist/styled-components.cjs.js' implicitly has an 'any' type.

为了解决这个问题,我将文件重命名为 *.jsx,问题就消失了。
我刚刚学习 typescript ,所以我的想法是我需要安装一个 typescript 库来支持styled-components,但我还没有弄清楚如何做到这一点(尚未)。

搜索

在寻找解决方案时,我遇到了以下问题,但他们没有回答这个问题。

js5cn81o

js5cn81o1#

样式化组件库不随类型一起提供。相反,您需要从绝对类型化存储库安装它。

npm i --save-dev @types/styled-components
k7fdbhmy

k7fdbhmy2#

如果使用Yarn:

yarn add @types/styled-components -D
svujldwt

svujldwt3#

用于React Native

yarn add -D @types/styled-components-react-native

相关问题