rescript-lang / rescript-lang/rescript
Variables with reserved keywords renamed in output, but not reflected in generated typescript
@cometkim arbeitet bereits daran.
Seit 26.7.2024.
- Vorherrschende Sprache
- OCaml
- Sterne
- 7.5k
- Forks
- 485
- Ø Merge
- 1 T. 2 Std.
- Gemergte PRs (30 T.)
- 55
Beschreibung
In our app, we have modules representing entity permissions.
e.g:
// Permissions.res
module Products = {
let createNew = "createPermissionString"
let viewExisting = "viewPermissionString"
let delete = "deletePermissionString"
}
// Permissions.resi
module Products = {
@genType let createNew: string
@genType let viewExisting: string
@genType let delete: string
}
However, because delete is a reserved keyword , the compiler instead renames delete to $$delete without reflecting this in the generated tsx file.
// Permissions.gen.tsx
export const Products_createNew: string = PermissionBS.Products.createNew;
export const Products_viewExisting: string = PermissionBS.Products.viewExisting;
export const Products_delete: string = PermissionBS.Products.delete;
Thus any usage of Products_delete in our typescript code would be undefined because we're not consuming PermissionBS.Products.$$delete.
Ideally, the developer avoids reserved keywords altogether, but if the compiler will allow and rename these, I'd expect the genTyped output to reflect any renaming done by the compiler.
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Bewertung
Dieses Issue wurde noch nicht bewertet.