Как уйти от использования ключа без заглавной буквы для построения записи?
Я использую graphql, nexus-plugin-prisma, prisma для создания серверного приложения с использованием ReScript. Проблема, с которой я сталкиваюсь, заключается в том, что некоторые столбцы начинаются с заглавной буквы, и я хочу установить типы для таких схем, используя записи вместо объектов. (чтобы использовать утилиту сопоставления с образцом)
Но ReScript предотвращает появление заглавных букв в качестве самого первого символа ключа записи. Могу ли я как-нибудь решить эту проблему? Любая помощь будет оценена.
1 ответ
Обычно при работе с graphQL лучший способ обойти эту проблему - использовать функцию псевдонима graphQL:
fragment Foo on foo {
uncapitalizedAlias: CapitalizedName
}
edit: я не знаю, определены ли записи, которые вы пытаетесь использовать, заранее или сгенерированы вашим клиентом GraphQL, но у вас есть другие более общие решения, когда вы хотите привязаться к объектам JS с заглавными именами:
- вы можете использовать
bs.as
для изменения имени поля (работает как в синтаксисах Ocaml/Reason, так и в Rescript):
type myGQLrecord = {
@bs.as("CapitalizedName")
uncapitalizedName: string,
}
- или вы можете напрямую использовать любое имя идентификатора, которое хотите для своего поля, благодаря этой функции синтаксиса rescript (работает также для идентификаторов значений):
type myGQLrecord = {
\"CapitalizedName": string
}
На мой взгляд, это делает его более громоздким в использовании.