'IntrinsicAttributes&amp;类型中不存在属性IntrinsicClassAttributes <datepicker>&amp; Readonly&lt; {children?:ReactNode; }&GT; ......“

时间:2018-05-03 16:14:10

标签: reactjs typescript material-ui

我正在尝试将React与TypeScript和Material-UI的组件一起使用。不幸的是,我收到的错误是这样的:

  

属性'openToYearSelection'在类型上不存在   '内在属性&amp; IntrinsicClassAttributes&amp;   Readonly&lt; {children?:ReactNode; }&GT; ......“。

import * as React from 'react';
import DatePicker from 'material-ui/DatePicker';

interface IState {
  birthday: any,
}

export default class SampleForm extends React.Component<IProps, IState> {
  constructor(props: any) {
    super(props);

    const { record = {} } = this.props;

    this.state = {
      birthday: record.birthday || null,
    };
  }

  public birthdayPicker() {
    const { birthday } = this.state;

    return (
      <DatePicker
        defaultDate={birthday}
        hintText="Birthday"
        openToYearSelection={true}
      />
    );
  }

  public render() {
    return (
      <form style={styles.root}>
        {this.header()}
        {this.firstName()}
        {this.lastName()}
        {this.birthdayPicker()}
        {this.phoneNumber()}
        {this.actionButtons()}
      </form>
    )
  }
}

将Material-UI与TypeScript和React一起使用的正确方法是什么?

2 个答案:

答案 0 :(得分:0)

我通过在名称空间中添加缺少的属性来解决此问题 node_modules/@types/material-ui/index.d.ts个文件。它对我有用。我不认为这是一个很好的解决方案,我想知道是否有更好的方法。

namespace DatePicker {
    export interface DatePickerProps {
        defaultDate?: Date;
        disableYearSelection?: boolean;
        ..

答案 1 :(得分:0)

如果它是第三方库,您可以在出错的行上方添加它,它会忽略错误并让您构建:

// @ts-expect-error