microsoft / microsoft/TypeScript

Module Namespace Exotic Objects are incorrectly typed as if they have an Object prototype

Abierto
#32,646 1 comentario 4 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

In Discussion Suggestion
Lenguaje dominante
Go
Estrellas
111k
Forks
14.3k
Merge medio
1 d 19 h
PR fusionados (30 d)
117

Descripción

TypeScript Version: 3.5.3

Search Terms:

  • import hasOwnProperty
  • import star hasOwnProperty
  • namespace exotic object
  • import prototype

Code

import * as Foo from "./Foo"
if (foo.hasOwnProperty("bar")) {
  console.log(foo.bar)
}

Expected behavior:

Type error due to hasOwnProperty not existing, as the "module namespace exotic object" should have a null prototype.

Actual behavior:

Code runs producing runtime error that hasOwnProperty is undefined.

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 reproduciendo el ejemplo con TypeScript 3.5.3 e inspecciona cómo se tipa un namespace import * as Foo. El issue está terminado cuando el compilador informa de un error para hasOwnProperty, coincidiendo con el comportamiento en tiempo de ejecución de prototipo nulo especificado.

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
3/5
Tiempo estimado
1-2 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.