Angular интерфейс из схемы mon goose - PullRequest
0 голосов
/ 18 апреля 2020

Помогите, пожалуйста, разобраться, как сделать правильный Angular интерфейс из модели базы данных

Иметь следующую схему на бэкэнде:

const mongoose = require('mongoose')
const Schema = mongoose.Schema

const incomeSchema = new Schema({   
    income: {
        type: Number
    },
    incomeDate: {
        type: Date,
        default: Date.now
    }
})


const userSchema = new Schema({
    username :{
        type: String,        
    },
    website: {
        sitename: {
            type :String
        },        
        income: [incomeSchema]
    }    
})
module.exports = mongoose.model('User', userSchema)

Это правильный способ записи Angular интерфейс? Не могу заставить его работать: (

export class userInterface  {
    _id: String
    username: String
    website: {
        sitename: String,
        income: [
            {
                income : Number
            }
        ]
    }
}

1 Ответ

1 голос
/ 19 апреля 2020

Класс не подходит для объявления типа, представляющего HTTP-ответ, поскольку десериализованные значения JSON, полученные в результате HTTP-запросов, никогда не будут экземплярами класса. Интерфейс является идеальным кандидатом для этого.

Решение

interface IncomeData{
income:number;
incomeDate:Date;
}

interface Website{
sitename: string;
incomeData:Array<IncomData>;
}

export interface User{
    id: string;
    username: string;
    website:Website;
}

Как создать модель Typescript для ответа, возвращаемого библиотекой HttpClient в Angular .

...