Typescript defaultProps не проверяет тип - PullRequest
0 голосов
/ 27 ноября 2018

Я использую TypeScript 3.0 и в соответствии с документацией от https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-0.html

Вместо этого используйте static defaultProps: Pick<Props, "name">; в качестве явной аннотации типа или не добавляйте аннотацию типа, как в примеревыше.

Однако, если я напишу:

import React, { Component } from 'react';

interface Props {
  counter: number;
}

export default class NumberCounter extends Component<Props> {
  static defaultProps = {
    counter: "i am not a number"
  };

  render() {

    return (
      <div>{this.props.counter}</div>
    );
  }
}

Он компилируется и работает, по-видимому, значение по умолчанию для проп не проверено на тип.Тем не менее, когда я пытаюсь использовать компонент по ошибке:

<NumberCounter 
  counter="still not a number"
/>

Он показывает ошибку и проверяет правильность типов, когда он используется в другом месте.Это известная ошибка с TypeScript?

1 Ответ

0 голосов
/ 27 ноября 2018

Тип defaultProps должен иметь тип, а не только сам компонент:

static defaultProps: Props = {
    counter: "i am not a number"
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...