microsoft / microsoft/TypeScript
Protected nested classes
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Go
- Estrellas
- 111k
- Forks
- 14.3k
- Merge medio
- 2 d 4 h
- PR fusionados (30 d)
- 132
Descripción
TypeScript Version: 1.8.9
Code
class Outer {
protected static Inner = class {}
private myInner: Outer.Inner;
}
Expected behavior: No errors.
Actual behavior: Compiler error: Cannot find namespace 'Outer'. Line 3, Column 24
Code
class Outer {
protected static Inner = class {}
private myInner: Outer.Inner;
}
namespace Outer {}
Expected behavior: No errors.
Actual behavior: Compiler error: Module 'Outer' has no exported member 'Inner'. Line 3, Column 32
Code
export class Outer {
protected static Inner = class {};
}
export class Child extends Outer {
static temp = class extends Outer.Inner {}
}
Expected behavior: No errors.
Actual behavior: Compiler error: Property 'Inner' is protected and only accessible within class 'Outer' and its subclasses. Line 6, Column 35
The problem here is that there is no way to define a protected nested class in a way that makes it possible to use in a type declaration. The third example shows why I want to use this: I want a nested class that can only be extended by classes that extend the parent class.
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
Reproduce los tres ejemplos de TypeScript del issue, incluida la solución alternativa con namespace y el caso de extensión de una subclase. Rastrea cómo el compilador resuelve los tipos de clase anidados y los miembros estáticos protegidos, y añade cobertura de regresión que demuestre que los ejemplos válidos se compilan sin errores, mientras que el acceso a los miembros protegidos sigue estando restringido.
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
- 5/5
- Tiempo estimado
- Más de una semana
- Estado de actividad
- Estancado
- Claridad
- Bien especificado
- Aptitud para principiantes
- 35/100