microsoft / microsoft/TypeScript
Regression in `asserts` behavior modifying type of `this`
Abierto
Nadie ha tomado este issue todavía.
Needs Investigation
- 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
asserts regression
🕗 Version & Regression Information
- This changed between versions 4.9.5 and 5.0.4
⏯ Playground Link
Playground link with relevant code
💻 Code
export class Set<S extends number[] = []> {
insert<_>(x: any): asserts this is Set<[...S, 0]> {}
}
const y: Set = new Set();
y.insert(6);
y
//^?
y.insert(6);
y
//^?
🙁 Actual behavior
In 5.0.4
//^? const y: Set<[]>
//^? const y: Set<[]>
🙂 Expected behavior
In 4.9.5
//^? const y: Set<[0]>
//^? const y: Set<[0,0]>
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 TypeScript Playground enlazado y compara el comportamiento informado en las versiones 4.9.5 y 5.0.4. Investiga cómo el método asserts cambia el tipo de this a través de llamadas sucesivas a insert. Se considera terminado cuando el ejemplo estrecha y a Set\u003c[0]\u003e después de la primera llamada y a Set\u003c[0,0]\u003e después de la segunda.
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
- 35/100