microsoft / microsoft/TypeScript
Optional arguments in JSDoc types may be moved to TypeScript types quickfix
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Go
- Estrellas
- 111k
- Forks
- 14.3k
- Merge medio
- 1 d 19 h
- PR fusionados (30 d)
- 117
Descripción
TypeScript Version: 3.4.3
80004jsdoc quickfix optional
Code
With Closure Compiler, you mark a function parameter optional by adding an = after its type (reference):
/**
* @param a {string} Base string.
* @param b {string=} Optional string to add
* @return {string}
*/
function foo(a, b) {
if (b) return a + b;
return a;
}
TypeScript offers a quickfix to convert these jsdoc annotations to TypeScript types:

Expected behavior:
The b parameter should be optional:
/**
* @param a {string} Base string.
* @param b {string=} Optional string to add
* @return {string}
*/
function foo(a: string, b?: string): string {
if (b) return a + b;
return a;
}
Actual behavior:
The b parameter is required but has type string | optional:
/**
* @param a {string} Base string.
* @param b {string=} Optional string to add
* @return {string}
*/
function foo(a: string, b: string | undefined): string {
if (b) return a + b;
return a;
}
This means that all calls of the function which don't specify b will be flagged as errors.
Playground Link: link, though quickfixes are not available there
Related Issues:
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 reproduciendo el quickfix de tipos de JSDoc-to-TypeScript con la función foo proporcionada y compara el tipo de parámetro generado con el parámetro opcional esperado. Rastrea el punto de entrada del quickfix y añade cobertura de regresión que demuestre que se aceptan las llamadas que omiten b, mientras que el tipo de retorno generado sigue siendo string.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- javascript, typescript
- Área
- compilers, tooling
- Tipo de issue
- Error
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 42/100