[英]How to create dto of an complex object in NestJs
我是 NestJs 的初学者,我想创建一个具有以下结构的 dto:
我想创建一个 API,它可以使用 DTO 返回这个 object。
export let Week = [
{
DayName : "TuesDay",
TimeZone: [
{
First: {
Start: 18,
end: 19,
isReserved: false,
reserver: "someone"
},
Second: {
Start: 19,
end: 20,
isReserved: false,
reserver: "someone"
},
Third: {
Start: 20,
end: 21,
isReserved: false,
reserver: "someone"
}
}
]
},
{
DayName : "Wednesday",
TimeZone: [
{
First: {
Start: 18,
end: 19,
isReserved: false,
reserver: "someone"
},
Second: {
Start: 19,
end: 20,
isReserved: false,
reserver: "someone"
},
Third: {
Start: 20,
end: 21,
isReserved: false,
reserver: "someone"
}
}
]
},
{
DayName : "Friday",
TimeZone: [
{
First: {
Start: 18,
end: 19,
isReserved: false,
reserver: "someone"
},
Second: {
Start: 19,
end: 20,
isReserved: false,
reserver: "someone"
},
Third: {
Start: 20,
end: 21,
isReserved: false,
reserver: "someone"
}
}
]
}
]
我尝试了以下 dto,但在服务提供商中遇到错误:
我创建了 3 个类 OneSessionResponseDto、SessionsResponseDto 和 WeekResponseDto,因此我可以将它们用作上面 object 的 dto。
export class OneSessionResponseDto {
start: number;
end: number;
isReserved: boolean;
reserver: string;
}
export class SessionsResponseDto {
First: OneSessionResponseDto;
Second: OneSessionResponseDto;
Third: OneSessionResponseDto;
}
export class WeekResponseDto {
DayName: string;
TimeZone: SessionsResponseDto;
}
这是服务提供商 class:
@Injectable()
export class AppService {
private week = Week;
getWeek() : WeekResponseDto[] {
return (this.week); <= the error
}
}
我在这里收到此错误:
类型“SessionsResponseDto”中缺少以下属性:第一、第二、第三
你几乎拥有它。 您需要将TimeZone
的类型设置为SessionsResponseDto[]
因为它是一个数组。 然后将OneSessionResponseDto#start
更改为OneSessionResponseDto#Start
(大写很重要)。 您可以在 typoescript playground here 中看到一个可行的解决方案
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.