Ant-design: [Demande de fonctionnalité] Définition de l'interface Export Props dans tous les fichiers de composant index.d.ts

Créé le 23 juin 2017  ·  8Commentaires  ·  Source: ant-design/ant-design

Quel problème cette fonctionnalité résout-elle?

Le fait d'avoir l'interface Props standard définie comme publique permet de réutiliser la définition Props lors de la création de ma propre version personnalisée du composant.

À quoi ressemble l'API proposée?

Par exemple, lors de la création de mon composant de connexion, je dois:

import { FormComponentProps } from 'antd/lib/form/Form'

class Login extends React.Component<{} & FormComponentProps, {}> {
  render() {
    // some render code
  }
}

Mais en suivant peut-être mieux:

import { FormComponentProps } from 'antd'

class Login extends React.Component<{} & FormComponentProps, {}> {
  render() {
    // some render code
  }
}

Au moins:

import { FormComponentProps } from 'antd/lib/form'

class Login extends React.Component<{} & FormComponentProps, {}> {
  render() {
    // some render code
  }
}

Tout comme ce package d'interface utilisateur basé sur TS: blueprint

help wanted 🗣 Discussion

Commentaire le plus utile

Je pense que le premier est meilleur.

Le choix de la deuxième méthode peut être dû au fait que la première exposée peut également être une interface, mais ces interfaces sont très utiles lors de l'utilisation de TypeScript, ceux qui n'utilisent pas TS ne les voient tout simplement pas.

De nombreux frameworks écrits en TS exposeront l'interface aux plus externes et ne trouveront aucun problème.

Bien sûr, la deuxième façon peut répondre aux besoins. Le but de ce PROBLÈME est d'unifier l'emplacement exposé de l'interface . La situation actuelle est que l'emplacement de l'interface est imprévisible dans le dossier lib/[component name]/ .

Mais j'espère toujours que le premier pourra être adopté, merci.

Tous les 8 commentaires

Je pense que ce qui suit est assez bon:

import { FormComponentProps } from 'antd/lib/form'

class Login extends React.Component<{} & FormComponentProps, {}> {
  render() {
    // some render code
  }
}

Je pense que le premier est meilleur.

Le choix de la deuxième méthode peut être dû au fait que la première exposée peut également être une interface, mais ces interfaces sont très utiles lors de l'utilisation de TypeScript, ceux qui n'utilisent pas TS ne les voient tout simplement pas.

De nombreux frameworks écrits en TS exposeront l'interface aux plus externes et ne trouveront aucun problème.

Bien sûr, la deuxième façon peut répondre aux besoins. Le but de ce PROBLÈME est d'unifier l'emplacement exposé de l'interface . La situation actuelle est que l'emplacement de l'interface est imprévisible dans le dossier lib/[component name]/ .

Mais j'espère toujours que le premier pourra être adopté, merci.

Salut, j'essaie de comprendre pourquoi ne fonctionne pas pour moi mais, j'ai cette erreur node_modules / antd / lib / form / index "'n'a pas de membre exporté' FormComponentProps '.

ma solution de contournement était l'importation {FormComponentProps} à partir de 'antd / lib / form / Form';

Qu'est-ce que je fais mal?

@DavidNorena

Voulez-vous dire que vous essayez ceci: import { FormComponentProps } from 'antd/lib/form , mais obtenez une erreur?

bien sûr, c'est une erreur, car FormComponentProps n'est pas exposé dans lib/form dir maintenant, c'est pourquoi je soumets ce problème :)

@newraina ahhhh maintenant je comprends! : D désolé, alors en attendant, j'utiliserai import {FormComponentProps} de 'antd / lib / form / Form'; D'accord ?

@DavidNorena Oui

Vous pouvez nous aider pour cela.

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