microsoft / microsoft/TypeScript
Weak type not rejected when intersected with `ThisType`
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Go
- Estrellas
- 111k
- Forks
- 14.4k
- Merge medio
- 1 d 19 h
- PR fusionados (30 d)
- 117
Descripción
🔎 Search Terms
- function overload
- ThisType
- this
🕗 Version & Regression Information
- This is a crash
⏯ Playground Link
💻 Code
interface Foo {
a: string
}
declare function fun0(arg: () => (
& Foo
& ThisType<Foo>
)): void
declare function fun0(arg: (
& Partial<Foo>
& ThisType<Foo>
)): void
fun0({
// ^? function fun0(arg: (Partial<Foo> & ThisType<Foo>)): void (+1 overload)
a: '1'
})
fun0(() => ({
// ^? function fun0(arg: () => (Foo & ThisType<Foo>)): void (+1 overload)
a: '1'
}))
// @ts-expect-error
fun0(() => ({
// ^? function fun0(arg: (Partial<Foo> & ThisType<Foo>)): void (+1 overload)
a: 1
}))
When I intersect ThisType with a type similar to {} and use it as a function argument, it will always resolve to this declaration.
🙁 Actual behavior
overload to function fun0(arg: (Partial<Foo> & ThisType<Foo>)): void (+1 overload)
🙂 Expected behavior
overload to function fun0(arg: () => (Partial<Foo> & ThisType<Foo>)): void (+1 overload)
Additional information about the issue
When I comment ThisType intesection, it works.
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza con el ejemplo enlazado de TypeScript Playground y reproduce el comportamiento de resolución de sobrecargas relacionado con ThisType, Foo y Partial. Rastrea cómo el compilador gestiona las intersecciones con ThisType y los argumentos de función; el trabajo estará terminado cuando se rechace la tercera llamada y la sobrecarga inferida coincida con el tipo de función esperado sin producir un fallo.
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
- 42/100