Ant-design: [Solicitud de funciones] Exportación de la definición de interfaz de accesorios en todos los archivos index.d.ts de componentes

Creado en 23 jun. 2017  ·  8Comentarios  ·  Fuente: ant-design/ant-design

¿Qué problema resuelve esta función?

Tener la interfaz de Props estándar definida como pública hace posible reutilizar la definición de Props al crear mi propia versión personalizada del componente.

¿Cómo se ve la API propuesta?

Por ejemplo, al crear mi componente de inicio de sesión, debo:

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

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

Pero siguiendo tal vez mejor:

import { FormComponentProps } from 'antd'

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

Al menos:

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

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

Al igual que lo hace este paquete de IU basado en TS: blueprint

help wanted 🗣 Discussion

Comentario más útil

Creo que el primero es mejor.

La elección de la segunda forma puede deberse a que la primera expuesta también puede tener interfaces, pero estas interfaces son muy útiles cuando se usa TypeScript, aquellos que no usan TS simplemente no las ven.

Muchos de los marcos escritos en TS expondrán la interfaz al exterior y no encontrarán ningún problema.

Por supuesto, la segunda forma puede satisfacer las necesidades. El propósito de este NÚMERO es unificar la ubicación expuesta de la interfaz . La situación actual es que la ubicación de la interfaz es impredecible en la carpeta lib/[component name]/ .

Pero aún espero que se adopte el primero, gracias.

Todos 8 comentarios

Creo que lo siguiente es suficientemente bueno:

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

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

Creo que el primero es mejor.

La elección de la segunda forma puede deberse a que la primera expuesta también puede tener interfaces, pero estas interfaces son muy útiles cuando se usa TypeScript, aquellos que no usan TS simplemente no las ven.

Muchos de los marcos escritos en TS expondrán la interfaz al exterior y no encontrarán ningún problema.

Por supuesto, la segunda forma puede satisfacer las necesidades. El propósito de este NÚMERO es unificar la ubicación expuesta de la interfaz . La situación actual es que la ubicación de la interfaz es impredecible en la carpeta lib/[component name]/ .

Pero aún espero que se adopte el primero, gracias.

Hola, estoy tratando de averiguar por qué no funciona para mí, pero tengo este error node_modules / antd / lib / form / index "'no tiene miembro exportado' FormComponentProps '.

mi solución fue importar {FormComponentProps} desde 'antd / lib / form / Form';

¿Qué estoy haciendo mal?

@DavidNorena

¿Quiere decir que intenta esto: import { FormComponentProps } from 'antd/lib/form , pero obtiene un error?

por supuesto que es un error, porque FormComponentProps no se expone en lib/form dir ahora, por eso envío este problema :)

@newraina ahhhh ¡ahora lo entiendo! : D lo siento, mientras tanto usaré import {FormComponentProps} de 'antd / lib / form / Form'; De acuerdo ?

@DavidNorena

Puedes ayudarnos con esto.

¿Fue útil esta página
0 / 5 - 0 calificaciones