microsoft / microsoft/TypeScript
Treatment of recursive tuples that utilize type spread.
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Go
- Estrellas
- 111k
- Forks
- 14.3k
- Merge medio
- 1 d 19 h
- PR fusionados (30 d)
- 117
Descripción
TypeScript Version: 4.0.2
Search Terms: spread tuple in recursive tuple type
Code
I'm trying to model a type that could evaluate to any of the following:
["list", "of", "Post"];
["list", "of", "list", "of", "Post"];
["list", "of", "list", "of", "list", "of", "Post"];
// ... could go on
The following approach produces a circularity error, even though tuple types are circularity-capable since 3.7 :/
type Nested = ["list", "of", ...(["Post"] | Nested)];
Expected behavior:
To be able to type-check the following (for example):
const nested: Nested = ["list", "of", "list", "of", "Post"];
Actual behavior:
Circularity error.
Any help would be greatly appreciated! Thank you!
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
No se indica ningún archivo fuente ni ninguna prueba. Empieza reproduciendo el error de circularidad con el ejemplo de tupla recursiva proporcionado de TypeScript 4.0.2 y, después, sigue el tratamiento de los tipos de tupla recursivos y de los type spreads por parte del type-checker. La tarea estará terminada cuando la declaración de ejemplo y el valor anidado pasen la comprobación de tipos sin el error de circularidad, y se haya añadido cobertura en el área de pruebas del compilador correspondiente.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- typescript
- Área
- compilers
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100