Material-ui: [TextField] type = nombre manquant Min, Max, Step Types de typescript

Créé le 27 nov. 2017  ·  8Commentaires  ·  Source: mui-org/material-ui

  • [x] J'ai recherché les problèmes de ce référentiel et je pense que ce n'est pas un doublon.

Comportement prévisible

<TextField type="number" min="0" max="10" step="1" /> devrait compiler avec Typescript

Comportement actuel

Recevez l'erreur Typecript suivante pour min, similaire pour max et step: [ts] Property 'min' does not exist on type 'IntrinsicAttributes & TextFieldProps & { children?: ReactNode; }'.

Votre environnement

| Tech | Version |
| -------------- | --------- |
| Material-UI | 1.0.0-beta.21 |
| React | 16,0,0 |
| Dactylographié | 2.6.1 |

bug 🐛 TextField typescript

Commentaire le plus utile

Est-ce que ça marche?

<TextField type="number" inputProps={{ min: "0", max: "10", step: "1" }} />

Tous les 8 commentaires

Est-ce que ça marche?

<TextField type="number" inputProps={{ min: "0", max: "10", step: "1" }} />

Oui ça marche. inputProps accepte un objet avec quelque chose dedans, cependant, je désactive effectivement le système de types en le faisant de cette façon.

Oui ça marche. inputProps accepte un objet avec quelque chose dedans, cependant, je désactive effectivement le système de types en le faisant de cette façon.

Bon point, j'ai ouvert # 9321 pour corriger la saisie de inputProps .

inputProps est destiné à permettre _tout ce qui se passe_ sur un InputComponent . Cela permet une intégration ouverte avec des composants externes, pour lesquels nous ne connaissons malheureusement pas ou n'avons pas de types.

Exemple:

import * as MaskedInput from 'react-text-mask'

      <TextField
        InputProps={{
          inputComponent: MaskedInput,
        }}
        inputProps={{
          guide: false,
          mask,
          placeholderChar: '\u2000',
        }}
        type="tel"
        value={value}
      />

Donc, l'alternative pour éviter les inputProps fortement typés dans le même scénario (merci @pelotom) est

import { InputProps as MuiInputProps } from 'material-ui/Input'

      <TextField
        InputProps={{
          inputComponent: (inputProps: MuiInputProps) => (
            <MaskedInput {...inputProps} guide={false} mask={mask} placeholderChar="\u2000" />
          ),
        }}
        type="tel"
        value={value}
      />

@pelotom dépose une nouvelle proposition / problème pour revoir cette API.

@rosskevin
MaskedInput n'est pas défini,
le masque n'est pas défini
:(

Cela semble être une solution de contournement trop compliquée

Il serait préférable de les définir au niveau TextField, afin que la validation puisse être effectuée sans un tas de logique répétée partout. Je détesterais avoir à étendre TextField chaque fois que je veux l'utiliser pour un champ numérique avec des exigences min / max / step.

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

iamzhouyi picture iamzhouyi  ·  3Commentaires

chris-hinds picture chris-hinds  ·  3Commentaires

revskill10 picture revskill10  ·  3Commentaires

ryanflorence picture ryanflorence  ·  3Commentaires

pola88 picture pola88  ·  3Commentaires