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:
Warning: Failed prop type: Invalid prop `id` of type `number` supplied to `Table`, expected `string`
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: