Usar React.PropTypes
faz sentido em um aplicativo React TypeScript ou é apenas um caso de "cinto e suspensórios"?
Como a classe do componente é declarada com um Props
parâmetro de tipo:
interface Props {
// ...
}
export class MyComponent extends React.Component<Props, any> { ... }
Existe algum benefício real em adicionar
static propTypes {
myProp: React.PropTypes.string
}
para a definição da classe?
Texto datilografado e PropTypes servem a propósitos diferentes. Typescript valida tipos em tempo de compilação , enquanto PropTypes são verificados em tempo de execução .
O typescript é útil quando você está escrevendo código: ele irá avisá-lo se você passar um argumento do tipo errado para seus componentes React, fornecerá preenchimento automático para chamadas de função, etc.
PropTypes são úteis ao testar como os componentes interagem com dados externos, por exemplo, ao carregar JSON de uma API. PropTypes irá ajudá-lo a depurar (quando no modo de desenvolvimento do React) por que seu componente está falhando, imprimindo mensagens úteis como:
Embora possa parecer que Typescript e PropTypes fazem a mesma coisa, eles não se sobrepõem. Mas é possível gerar PropTypes automaticamente a partir do Typescript para que você não precise especificar os tipos duas vezes, consulte por exemplo:
fonte
Eu acho que em algumas situações complicadas onde o tipo de props não pode ser inferido em tempo de compilação, então seria útil ver quaisquer avisos gerados pelo uso
propTypes
em tempo de execução.Uma dessas situações seria ao processar dados de uma fonte externa para a qual as definições de tipo não estão disponíveis, como uma API externa além do seu controle. Para APIs internas, acho que vale o esforço para escrever (ou melhor, gerar) definições de tipo, se ainda não estiverem disponíveis.
Fora isso, eu realmente não vejo nenhum benefício (e é por isso que nunca usei pessoalmente).
fonte