entity.ts파일의 class 데이터 타입지정안됨 오류
entity.ts파일에서 input으로 사용할 틀을 resolver에서 Mutation쪽 service의 매개변수로 넘겨줄려고 사용했는데
Argument of type '{ inputStarbucks: InputStarbucks; }' is not assignable to parameter of type 'InputStarbucks'
이러한 오류가 나서 찾아보니 해당 타입으로는 변수타입을
지정할수없어서 변경하라고했는데
class틀도 문제가 없는데 왜 오류가 나는지 잘모르겠습니다.
import { Args, Mutation, Query, Resolver } from '@nestjs/graphql';
import { StarbucksService } from './starbucks.service';
import { InputStarbucks } from './entities/starbucks.input';
import { Starbucks } from './entities/starbucks.entity';
@Resolver()
export class StarbucksResolver {
constructor(
private readonly starbucksService: StarbucksService, // prettier때문에 아래로 내려쓰기가 안되니까 주석달기
) {}
@Query(() => [Starbucks], { nullable: true })
// graphql에서는 배열을 [Board]식으로 사용 아래에서는 Board[]라고 사용했는데
fetchBoards(): Starbucks[] {
return this.starbucksService.findAll();
}
@Mutation(() => String)
creatBoard(
// 한번에 사용하는 방식
@Args('inputStarbucks') inputStarbucks: InputStarbucks,
// graphql에서 데이터를 입력받고 변수명과 타입을 지정
// graphql에서 writer로 입력받은값을 writer라는 변수에 받고 데이터 타입은 string으로 지정
): string {
return this.starbucksService.create({ inputStarbucks });
// return을 작성해야 사용한 api쪽 리턴이 module쪽까지 전달됨
}
}import { Injectable, Scope } from '@nestjs/common';
import { Starbucks } from './entities/starbucks.entity';
import { InputStarbucks } from './entities/starbucks.input';
@Injectable({ scope: Scope.DEFAULT })
export class StarbucksService {
findAll(): Starbucks[] {
// entity에서 만든 Board의 배열형태를 가져와서 사용
const result = [
{ number: 1, writer: '짱구', title: '제목', contents: '내용이요' },
{ number: 2, writer: '짱구2', title: '제목2', contents: '내용이요2' },
{ number: 3, writer: '짱구3', title: '제목3', contents: '내용이요3' },
];
return result;
}
create({ inputStarbucks }: InputStarbucks): string {
console.log(inputStarbucks.writer); // 데이터 타입의 클래스의 명과 동일해야한다 .writer이부분이
console.log(inputStarbucks.title);
console.log(inputStarbucks.contents);
return '게시물 등록 성공';
}
}import { Field, InputType } from '@nestjs/graphql';
// @ObjectType() // 이렇게 작성하면 type으로 나옴 . 리턴타입이 type이었을때
// mutation의 경우에는 input으로 작성했다
@InputType()
export class InputStarbucks {
@Field(() => String)
writer: string;
@Field(() => String)
title: string;
@Field(() => String)
contents: string;
}
// Graphql에서 사용하기위해서 graphql 데이터 타입지정
답변 1
0
안녕하세요! Daon님!
해당 스크린샷의 2번째 화면을 보니, { inputStarbucks }: InputStarbucks 로 타입을 지정하셨네요!
create({ inputStarbucks }: InputStarbucks): string {
console.log(inputStarbucks.writer); // 데이터 타입의 클래스의 명과 동일해야한다 .writer이부분이
console.log(inputStarbucks.title);
console.log(inputStarbucks.contents);
return '게시물 등록 성공';
}inputStarbucks의 타입이 InputStarbucks이므로,
inputStarbucks: InputStarbucks 와 같이 지정되어야합니다.(중괄호가 빠져야겠죠?!)
만약, 중괄호를 추가하고 싶으시다면,
{ inputStarbucks }: { inputStarbucks: InputStarbucks } 와 같이 지정되어야해요!
쉽게 이야기하면, ":"을 기준으로 왼쪽과 오른쪽의 구조가 동일해야합니다!
그래프 ql 문서 사용할때 느낌표 남는거 어떻게 없애나요?
0
84
2
강의 전체 소스 코드를 받고싶습니다.
0
76
2
fontawesome 사용 문의
0
79
2
소스 코드 부탁드립니다~
0
85
2
깃 레포지터리 소스
0
87
2
커리큘럼12.css 정렬 에 나오는 과제 정답알고싶어요
0
74
2
10-01 Entity TypeOrmModule.forRoot 에 entities
0
89
3
강의 버전관련 문의입니다
0
103
2
Ubuntu 설치 관련
0
61
1
schema.gql 질문 드립니다.
0
51
1
서버 재실행시 Many to Many
0
102
3
input 관련 문의
0
90
2
Rest API 보다는 graphql이 주된 내용인데
0
131
2
강의 전체 소스코드 받을수있을까요?
0
156
1
도커볼륨 마운트 관련
0
127
2
findOne 타입스크립트오류
0
109
1
http => htrtps 호출 인증서 신뢰 오류
0
354
1
self-signed certificate in certificate chain 에러 발생
0
417
1
mongoose 설치 오류
0
142
1
특정 API, 특정 IP 허용 (단일경로에 CORS 활성화)
0
283
2
08-06
0
180
3
구조랑 패턴 관련해서 질문
0
125
2
mydocker
0
128
2
coolsms statuscode 2000 인데 전송안돼는 경우 확인.
0
156
1





