microsoft / microsoft/TypeScript

【bug】ThisType is invalid when using param on generic object

Abierto
#52,969 4 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Bug Domain: This-Typing Help Wanted
Lenguaje dominante
Go
Estrellas
111k
Forks
14.4k
Merge medio
1 d 19 h
PR fusionados (30 d)
117

Descripción

Bug Report

🔎 Search Terms

ThisType Object Generic

🕗 Version & Regression Information

I was unable to test this on prior versions because I was not using this feature previously

⏯ Playground Link

Playground link with relevant code

💻 Code
type ILifetime = {
  onShareTimeline: () => string
}

function createObject<D>(obj: D & ILifetime & ThisType<D>) {
  console.warn(obj)
}

// working
createObject({
  title: 'demo',
  onShareTimeline() {
    return ''
  }
})

// not working
createObject({
  title: 'demo',
  onShareTimeline() {
    return this.title
  }
})
🙁 Actual behavior

The generic type is broken

🙂 Expected behavior

The generic type should contain the object properties as those are finally included into the result

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.

Línea de trabajo

Comienza con el TypeScript Playground enlazado y el ejemplo genérico createObject, comparando el callback que funciona con la versión que lee this.title. Investiga cómo se aplica ThisType durante el tipado contextual de objetos genéricos; se considera terminado cuando el tipo de objeto inferido incluye title y el callback puede devolver this.title sin errores.

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

Evaluación

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

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.