microsoft / microsoft/TypeScript
Extract to function in upper scope
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Go
- Estrellas
- 111k
- Forks
- 14.4k
- Merge medio
- 1 d 19 h
- PR fusionados (30 d)
- 117
Descripción
We have Extract to function in module scope and Extract to inner function in function xxx(which is Extract to function in current scope), we should also have Extract to function in upper scope. With it, we can:
const g = 'g';
export function A() {
const a_local = 'a';
return function B() {
const b_local = 'b';
return function C() {
const c_local = 'c';
// the bottom will be extracted to function upper scope
console.log(g, a_local, b_local, c_local);
// the above will be extracted to function upper scope
}
}
}
After the extraction, code will be:
const g = 'g';
export function A() {
const a_local = 'a';
return function B() {
const b_local = 'b';
function newFunction(c_local: string) {
console.log(g, a_local, b_local, c_local);
}
return function C() {
const c_local = 'c';
newFunction(c_local);
}
}
}
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 localizando las implementaciones y pruebas de “Extract to function in module scope” y “Extract to function in current scope”. Amplía el comportamiento de refactorización existente para que la extracción pueda dirigirse al ámbito de función superior pasando como parámetros las variables de ámbitos más profundos, y añade cobertura que coincida con el ejemplo de TypeScript.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- typescript
- Área
- developer-experience, tooling
- 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
- 38/100