React — TypeScript добавляет undefined в опору, даже если определены defaultProps

Почему следующее делает следующее:

type Props = {
  name?: string
  age: number
}

const Test = FC<Props> = (props) => {
  return (
    <h1>Hello, {props.name}. You are {props.age} years old.</h1>
  )
}

Test.defaultProps = {
  name: "John"
}

Выдать предупреждение о том, что name может быть undefined, когда режим strict установлен на true, даже если name определен в defaultProps.

🤔 А знаете ли вы, что...
С React можно использовать JSX (JavaScript XML) для описания компонентов.


1
4 719
2

Ответы:

Решено

Typescript не проверяет defaultProps функциональные компоненты. Если вам нужно значение по умолчанию, вы должны использовать значения по умолчанию ES6, например:

type Props = {
  name?: string
  age: number
}

const Test: FC<Props> = ({ name = "John" }) => {

}

Что вы можете сделать, это:

{props.name ? props.name : "Jhon"}