После того, как typeScript 3.0 поддерживает функцию defaultPoops, но она сочетается с поведением проводного интерфейса, когда мы устанавливаем defaultPoops, параметры интерфейса добавлять нельзя?Отметьте, или это заставит defaultPoops потерпеть неудачу, но, по литературному мышлению, установка defaultPoops должна быть установлена?пометьте в интерфейсе, потому что это означает, что у меня есть defaultPoops, поэтому я разрешаю клиентам устанавливать параметры или нет, но агрегат теперь так не делает.Кто-нибудь может объяснить, почему и все поведение реализует мышление в defaultPoops машинописи?
Пример кода:
import React from "react"
interface Props {
name: string; // default props work
}
const Test = ({name}: Props) => {
return <div>Hello ${name.toUpperCase()}!</div>;
}
const defaultProps = { name: 'aa'};
Test.defaultProps = defaultProps;
export default Test
<Test/> // compiler OK
import React from "react"
interface Props {
name?: string; // default props don't work
}
const Test = ({name}: Props) => {
return <div>Hello ${name.toUpperCase()}!</div>;
}
const defaultProps = { name: 'aa'};
Test.defaultProps = defaultProps;
export default Test
<Test/> // compiler not OK, it tell you name possible is undefined