0
votes

Typescript personnalisé Typecheck pour la longueur de la chaîne

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. xxx xxx

Comment puis-je Créez un type personnalisé pour vérifier cela et lancer une erreur?


3 commentaires

@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/...


3 Réponses :


1
votes

Il n'est pas possible de créer un type qui vérifie la longueur de la chaîne. Vous devriez faire cela par programme.

Vous pouvez le faire par une regex ou par longueur. Quelque chose comme ça. xxx


0 commentaires

0
votes
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;
}

0 commentaires

1
votes

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 regex strong> pour limiter la longueur de la chaîne p>

par exemple: P>

xxxx.test(yourValue)


0 commentaires