Как исправить отсутствующие свойства из запрошенных моделей? - PullRequest
0 голосов
/ 19 июня 2020

Я использую Typescript и Mon goose с GraphQL. В настоящее время, когда я запрашиваю (т.е. выполняю findOne) модель, возникает следующая проблема:

В типе «Promise» отсутствуют следующие свойства из типа «Account»: displayName, id, rpDisplayName

Для контекста ниже приведен соответствующий код. Я не понимаю, почему свойства считаются «отсутствующими» в разрешенной модели.


import { Document, model, Schema } from "mongoose";

const AccountSchema = new Schema({
  entity: {
    type: String,
    enum: ["consumer", "provider"],
    default: "consumer"
  },
  name: {
    type: String,
    required: true
  },
  createdAt: {
    type: Date,
    default: Date.now
  }
});

export enum AccountEntity {
  CONSUMER = "consumer",
  PROVIDER = "provider"
}

export interface AccountModel extends Document {
  entity: AccountEntity;
  name: string;
  createdAt?: Date;
}

export interface AccountPayload {
  entity: AccountModel["entity"];
  name: AccountModel["name"];
}

const Account = model<AccountModel>("Account", AccountSchema);

export default Account;

import { QueryResolvers, QueryAccountArgs } from "../generated/graphql-types";
import Account from "../models/account";

const query: QueryResolvers = {
  account: (_: any, { payload }: QueryAccountArgs): Account =>
    Account.findOne({ _id: payload.id })
      .exec()
      .then(
        model => {
          if (!model) {
            throw Error(`Unable to find account with id ${payload.id}`);
          }
          return model;
        },
        reason => {
          throw Error(reason);
        }
      )
};

export default query;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...