J'écris un composant réactif qui a besoin d'un accessoire de chaîne avec une longueur de moins de 10 caractères.
Je veux que le compilateur jette une erreur si un utilisateur transmet une chaîne d'une longueur supérieure à 10. p> Comment puis-je Créez un type personnalisé pour vérifier cela et lancer une erreur? p> p>
3 Réponses :
Il n'est pas possible de créer un type Vous pouvez le faire par une regex ou par longueur. Quelque chose comme ça. P> code> qui vérifie la longueur de la chaîne. Vous devriez faire cela par programme.
import PropTypes from 'prop-types';
interface ComponentProps {
word: StringLessThanTenChar
}
const Mycomponent = props => {
return <>{props.word}</>
}
Mycomponent.propTypes = {
word: chkLength
}
function chkLength(props:ComponentProps , propName:any, componentName = 'ANONYMOUS') {
if (props[propName]) {
let value = props[propName];
if (typeof value === 'string') {
if(value.length > 10) {
new Error(propName + ' in ' + componentName + " is accept maximum 10 length of strings");
}
}
}
return null;
}
1.First, il n'est pas pris en charge par TypeScript pour le moment
Report: problème sur Suggestion du type de chaîne validée par la regex p>
2.Vous pouvez utiliser par exemple: P> xxxx.test(yourValue)
@keikai - Si vous faites votre commentaire comme une réponse, j'accepterai comme réponse.
Vous auriez besoin de types de raffinement pour pouvoir le faire en compilation quels typescript ne prend pas en charge afin que vous ne puissiez que le vérifier en runtime.
Vérifiez ceci: moyen.com/@lemoine.benoit/...