unique symbol lost on assignment to const despite type assertion

Abierto
#55,901 7 comentarios 4 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

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

Línea de trabajo

Comienza con el TypeScript Playground enlazado y compara los tipos inferidos para la aserción unique-symbol con los casos análogos de literales de cadena y número. Rastrea el comportamiento de widening del compilador para las declaraciones const y las aserciones de tipos; después, verifica que el tipo unique-symbol afirmado se conserve sin introducir regresiones en los casos relacionados.

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

Descripción

In Discussion Suggestion
🔎 Search Terms

unique symbol widening

🕗 Version & Regression Information
  • This is the behavior in every version I tried
⏯ Playground Link

Playground Link

💻 Code
const u = Symbol();
const a7 = u as typeof u // widened  to symbol
🙁 Actual behavior

a7 is symbol

🙂 Expected behavior

a7 has typeof u

Additional information about the issue

This issue is a huge problem for isolated declarations as it breaks the assumption that in an expression const o = a as T we can always use T as the type of o. This is also inconsistent with the way similar expressions work for string/number literal types (ex)

Similar issues:

@Andarist perhaps https://github.com/microsoft/TypeScript/pull/54778 also fixes this?

Lenguaje dominante
Go
Estrellas
111k
Forks
14.4k
Merge medio
1 d 15 h
PR fusionados (30 d)
106

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.

Más de microsoft/TypeScript

Todos los issues de microsoft/TypeScript

Issues similares

Más issues de Go

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.