-
Notifications
You must be signed in to change notification settings - Fork 471
Open
Milestone
Description
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.
illusionalsagacity
Metadata
Metadata
Assignees
Labels
No labels