microsoft / microsoft/TypeScript
Infer type arguments from 'super()' calls
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
interface Component {
whatever: number;
}
type ComponentConstructor = new <T = {}>(extra: T) => Component & T;
declare const Component: ComponentConstructor;
class ReallyOldComponent extends Component {
constructor() {
super({ name: "Methuselah", age: 969 });
}
blah() {
this.whatever;
this.age;
}
}
Ideally this would produce no errors; in fact, ideally I wouldn't need to specify any type parameter defaults on ComponentConstructor's signature. However, instead, T is inferred as {} and in blah it is an error to access this.age.
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 tratamiento que hace el compilador de TypeScript de la construcción de clases genéricas y las llamadas a super(), usando la reproducción proporcionada como referencia. El trabajo estará terminado cuando el ejemplo no produzca errores, el tipo inferido incluya age en this y no sea necesario ningún parámetro de tipo predeterminado.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- typescript
- Área
- compilers
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 32/100