Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

overwrite `field` data with `computedFields` values

Abierto
#398 2 comentarios 4 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
32/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
typescript
Área
content

Línea de trabajo

El issue no nombra ningún archivo fuente ni test; comienza con la reproducción de Blog defineDocumentType y rastrea cómo los campos y computedFields se convierten en tipos generados. Verifica si un campo calculado reemplaza la descripción y el tipo originales, y si se admiten los tipos de lista. Se considera terminado cuando el tipo generado contiene el único campo tags previsto, con cobertura de regresión para este ejemplo.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

meta: never-stale needs-research

When defining a document with a field and computedFields child item with the same name, the computedFields field seems to be appended onto the generated type. Resulting in undesired types for the field.

I would have expected the computedFields data to overwrite the field data, both the description and the type.

For reference, I am converting a comma separated string of tags into a parsed array via the computedFields. Here is an example of my document definition:

export const Blog = defineDocumentType(() => ({
  name: "Blog",
  filePathPattern: `blog/**/*.md`,
  fields: {
    tags: {
      type: "string",
      description: "Comma separated listing of tags",
      required: false,
    },
  },
  computedFields: {
    tags: {
      description: "new description",
      type: "list",
      of: { type: "string" },
      resolve: (item) =>
        item?.tags?.split(",")?.map((tag) => tag.trim()) ?? undefined,
    },
  },
}));

Generates these types (simplified for the example):

/** Document types */
export type Blog = {
  /** Comma separated listing of tags */
  tags?: string | undefined
  /** new description */
  tags: list
}  

Extra note: It also seems like the computedFields children do not support list types, or it may be a bug?

Lenguaje dominante
TypeScript
Estrellas
3.5k
Forks
192
Métricas de merge de PR
Sin PR fusionados en 30 d

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de contentlayerdev/contentlayer

Todos los issues de contentlayerdev/contentlayer

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.