microsoft / microsoft/TypeScript
[Feature request] sort literals in .d.ts
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
Search Terms
Suggestion
sort string literal in .d.ts
Use Cases
avoid string literal random change order when source code didn't change
and make code history is more easy read
in this issue thread string literal is mean => "a" | "c" | "b"
this not only happen on Record, it has chance happen at all type is auto create by typescript emit with string literal
Examples
"a" | "c" | "b"is create by typesctipt emit and some time will random change order
- https://github.com/bluelovers/cjk-convert/blob/1a0ba9f85e0bf7fe916158cc14a4ef87507106d9/lib/zh/table/table.ts#L1619-L1635
- https://github.com/microsoft/TypeScript/issues/30328
- https://github.com/bluelovers/novel-travis-test/commit/3b88745e187736797d9a30d4f4bbd927b0c6dd30#diff-3006c96d8657ccca5b9b3618a256314c
- https://github.com/bluelovers/novel-travis-test/commit/d33c4a61602a8536d1414d36e027eb99845104f1#diff-3006c96d8657ccca5b9b3618a256314c
- https://github.com/bluelovers/novel-travis-test/commit/2d749195c39ef386e6c4bad1ae6e19d007c03e93#diff-3006c96d8657ccca5b9b3618a256314c
current .d.ts output
export declare const table_plus: Record<"a" | "c" | "b">
// "a" | "c" | "b" is random change order
in this request
sort ( use simple array.sort() ) it when output emit at
.d.ts
export declare const table_plus: Record<"a" | "b" | "c">
Checklist
My suggestion meets these guidelines:
- This wouldn't be a breaking change in existing TypeScript/JavaScript code
- This wouldn't change the runtime behavior of existing JavaScript code
- This could be implemented without emitting different JS based on the types of the expressions
- This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, etc.)
- This feature would agree with the rest of TypeScript's Design Goals.
Maintainer's note [@sandersn]: To implementers: When you implement this, be sure to sort other literal types too. Consider sorting other things, like symbol, by the order of their string representation.
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
Empieza siguiendo la ruta de emisión de declaraciones de TypeScript para el ejemplo .d.ts, especialmente cómo se generan las uniones de literales de cadena para los tipos Record. Compara la salida emitida con el orden solicitado y, después, considera la nota del mantenedor sobre otros tipos literales y símbolos. Se considera terminado cuando la salida de declaraciones es determinista sin cambiar el comportamiento del JavaScript en tiempo de ejecución.
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
- 35/100