Как уйти от использования ключа без заглавной буквы для построения записи?

Я использую graphql, nexus-plugin-prisma, prisma для создания серверного приложения с использованием ReScript. Проблема, с которой я сталкиваюсь, заключается в том, что некоторые столбцы начинаются с заглавной буквы, и я хочу установить типы для таких схем, используя записи вместо объектов. (чтобы использовать утилиту сопоставления с образцом)

Но ReScript предотвращает появление заглавных букв в качестве самого первого символа ключа записи. Могу ли я как-нибудь решить эту проблему? Любая помощь будет оценена.

1 ответ

Решение

Обычно при работе с graphQL лучший способ обойти эту проблему - использовать функцию псевдонима graphQL:

fragment Foo on foo {
  uncapitalizedAlias: CapitalizedName
}

edit: я не знаю, определены ли записи, которые вы пытаетесь использовать, заранее или сгенерированы вашим клиентом GraphQL, но у вас есть другие более общие решения, когда вы хотите привязаться к объектам JS с заглавными именами:

  1. вы можете использовать bs.as для изменения имени поля (работает как в синтаксисах Ocaml/Reason, так и в Rescript):
type myGQLrecord = {
  @bs.as("CapitalizedName")
  uncapitalizedName: string,
}

  1. или вы можете напрямую использовать любое имя идентификатора, которое хотите для своего поля, благодаря этой функции синтаксиса rescript (работает также для идентификаторов значений):
type myGQLrecord = {
  \"CapitalizedName": string
}

На мой взгляд, это делает его более громоздким в использовании.

Другие вопросы по тегам