microsoft / microsoft/TypeScript
Generics in union should be inferred as `never` when possible
Abierto
Nadie ha tomado este issue todavía.
Awaiting More Feedback
Suggestion
- Lenguaje dominante
- Go
- Estrellas
- 111k
- Forks
- 14.3k
- Merge medio
- 2 d 4 h
- PR fusionados (30 d)
- 132
Descripción
🔎 Search Terms
generics, inference, union, never
🕗 Version & Regression Information
This is the behavior in every version I tried, and I reviewed the FAQ for entries about union and never.
⏯ Playground Link
💻 Code
const f = <T,>(x: T | string, y: T | number) => y
f('a', 1) satisfies number // T is "a" now
const g = <T extends undefined>(x: T | number) => x
g(1) satisfies number // T is undefined now
🙁 Actual behavior
T is not never.
🙂 Expected behavior
T should be inferred as never, because it can be anything.
Additional information about the issue
This may be related to #42491.
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 la reproducción vinculada en TypeScript Playground y compara su comportamiento de inferencia genérica con el del issue relacionado #42491. El trabajo estará completo cuando T se infiera como never en ambos ejemplos y las comprobaciones de satisfies produzcan los resultados esperados.
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
- 5/5
- Tiempo estimado
- Más de una semana
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100