microsoft / microsoft/TypeScript

function members of primitives/builtins are not read-only

Abierto
#59,904 7 comentarios 1 reacción 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Awaiting More Feedback Suggestion
Lenguaje dominante
Go
Estrellas
111k
Forks
14.4k
Merge medio
1 d 19 h
PR fusionados (30 d)
117

Descripción

🔎 Search Terms

builtin number string member readonly

🕗 Version & Regression Information
  • This is the behavior in every version I tried, and I reviewed the FAQ for entries about "Common Bugs that arent Bugs"
⏯ Playground Link

https://www.typescriptlang.org/play/?ts=5.5.4&ssl=6&ssc=1&pln=1&pc=1#code/DYUwLgBAHhC8ECYDcAoKA6AbgQ2AVxAHkAzOCACgQEotcCTUVRIBPMgIgAsRhgB7dqhboAxp2wAnAIKR4wsZJmogA

💻 Code
let x = 2;
x.valueOf = (2).valueOf;

let y = "hello";
y.charAt = y.charAt;
🙁 Actual behavior

Code compiles just fine, even with --strict enabled.
Executing JavaScript fails:

can't assign to property "valueOf" on 2: not an object 
🙂 Expected behavior

Should be rejected by tsc as read-only assignment.

Additional information about the issue

Seems similar in nature to https://github.com/microsoft/TypeScript/issues/49113
Notably, array.length is allowed (because its legal in JS) but string.length is not (because it is illegal in JS). Since assigning to builtin functions is also illegal, this should be flagged by tsc.

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.

Línea de trabajo

Comienza con el ejemplo enlazado de TypeScript Playground y reproduce las asignaciones con --strict usando tsc. Rastrea cómo se comprueban las asignaciones a miembros primitivos y, después, añade el rechazo de escrituras ilegales en builtin functions, conservando casos legales de JavaScript como array.length; añade o actualiza las pruebas del compilador para cubrir los ejemplos.

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

Evaluación

Stack tecnológico
javascript, typescript
Área
compilers
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bien especificado
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.