Используя apollo-graphql, я создал тип "account" и сопутствующий преобразователь, который использует graphql-iso-date . Конфигурация приводит к следующим ошибкам, какие-либо идеи по поводу причины и решения?
В приведенном ниже коде typedef объединены в коллекцию из определенных модулей c typedef.
Тип '{Дата: GraphQLScalarType; DateTime: GraphQLScalarType; Время: GraphQLScalarType; } | {Запрос: AccountQueryResolver; } 'нельзя присвоить типу' IResolvers | IResolvers [] | undefined '.
Тип' {Date: GraphQLScalarType; DateTime: GraphQLScalarType; Время: GraphQLScalarType; } 'нельзя присвоить типу' IResolvers | IResolvers [] | undefined '.
Тип' {Дата: GraphQLScalarType; DateTime: GraphQLScalarType; Время: GraphQLScalarType; } 'не может быть назначен типу' IResolvers '. Свойство «Дата» несовместимо с индексной подписью
Тип «GraphQLScalarType» не может быть присвоен типу »(() => любой) | GraphQLScalarType | IEnumResolver | IResolverObject | IResolverOptions '.
Тип GraphQLScalarType нельзя присвоить типу IResolverObject.
В типе GraphQLScalarType отсутствует подпись индекса.
Коллекция TypeDefs
import CustomScalarTypeDefs from "./custom";
import QueryTypeDefs from "./query";
import AccountTypeDefs from "./account";
const TypeDefs = [CustomScalarTypeDefs, QueryTypeDefs, AccountTypeDefs];
export default TypeDefs;
Custom Scalar TypeDefs
import { gql } from "apollo-server-express";
const customScalarTypeDefs = gql`
scalar Date
scalar DateTime
scalar Time
`;
export default customScalarTypeDefs;
Query TypeDefs
import { gql } from "apollo-server-express";
const QueryTypeDefs = gql`
type Query {
account(id: String!): Account
}
`;
export default QueryTypeDefs;
Custom Scalar Resolver
import { GraphQLDate, GraphQLDateTime, GraphQLTime } from "graphql-iso-date";
const CustomScalarResolver = {
Date: GraphQLDate,
DateTime: GraphQLDateTime,
Time: GraphQLTime
};
export default CustomScalarResolver;
Account Resolver
import { QueryById } from "./signatures";
import Account, { AccountModel, AccountPayload } from "../../models/account";
interface AccountQueryResolver {
account: (_: never, req: QueryById) => Promise<AccountModel | null>;
createAccount: (
parent: Account | null,
{ entity, name }: AccountPayload
) => Promise<AccountModel | null>;
}
const accountResolver: AccountQueryResolver = {
account: (_, { id }): Promise<AccountModel | null> => {
return Account.findOne({ _id: id }).exec();
},
createAccount: (_, { entity, name }): Promise<AccountModel | null> => {
return Account.create({ entity, name });
}
};
export default accountResolver;