打字稿类型错误属性不存在

时间:2020-11-06 14:17:01

标签: javascript reactjs typescript components next

我的Typescript下一个项目中有这个组件


import PageTitle from './pagetitle'
import style from './contact.styl'
export default function Contact() {
  return (
    <section>
      <a name="contact"></a>
      <div className={style.container}>
    <PageTitle title='get in touch!'/>
        <form action="">
          <input name="name" type="text" placeholder="name" />
          <input name="subject" type="text" placeholder="subject" />
          <textarea placeholder="message" />
          <button type="submit">send</button>
        </form>
      </div>
    </section>
  );
}

contact.styl看起来像是使用Stylus CSS PreProcessor的CSS文件,因此样式的拼写没有错字。我最近在“ next-env.d.ts”文件中使用模块声明修复了一个错误

.container
    width 95vw
    height 90vh
    display flex
    flex-direction column
    background rgba(43,43,43,.97)
    border-radius 60px
    margin 0 auto
    h3
        font-size 22px
        color #d3ecf7
form
    height 450px
    display flex
    flex-direction column
    justify-content space-evenly
    align-items center
    margin-top 3rem
    input, textarea
        width 355px
        box-shadow 0px 3px 6px #00000029
        border-radius 13px
        outline none
        border none
        background #2b2b2b
        font normal normal 300 20px Avenir
        padding-top 5px
        text-align center
        color #fff
    input
        height 45px
    textarea
        height 200px
        resize none
    ::placeholder
        text-align center
        font normal normal 300 20px Avenir
        color #d3ecf7
@media(max-width 760px)
    .container
        width 100vw
        height auto
        border-radius 0
            
    form
        height 500px
        margin-top 0 
        input, textarea
            width 90vw

但是我一直收到此错误?

Type error: Property 'container' does not exist on type 'string'.

有人可以帮我找出原因吗?

编辑:添加了contact.styl

解决了问题

Try to add an asterisk to the module name as in the updated example. **- Sergey**

1 个答案:

答案 0 :(得分:0)

似乎您在声明.d.ts文件中的某个地方有一个模块声明。可能看起来像这样:

declare module ".styl" {
  const value: string;
  export default value;
}

如果正确,则应将导出类型更改为Record<string, string>。像这样:

declare module "*.styl" {
  const value: {[key: string]: string};
  export default value;
}