![](/img/trans.png)
[英]TS2740 is missing the following properties from type, Typescript, NestJS
[英]error TS2740 Type 'DeepPartial<Quiz>[]' is missing the following properties from type 'Question': id, question, hasId, save, and 4 more
我不知道如何解決這個錯誤。 有誰知道我需要修復什么才能使此代碼正常工作?
import { Injectable } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { CreateQuestionDto } from './dto/create-question.dto';
import { Question } from './question.entity';
import { QuestionRepository } from './question.repository';
@Injectable()
export class QuestionService {
constructor(
@InjectRepository(QuestionRepository)
private questionRepository: QuestionRepository,
) {}
async createQuestion(question: CreateQuestionDto): Promise<Question> {
return await this.questionRepository.save(question);
}
}
返回以下錯誤:
src/modules/quiz/question.service.ts:15:5 - 錯誤 TS2740:“DeepPartial[]”類型缺少“問題”類型的以下屬性:id、question、hasId、save 和另外 4 個。
15 返回等待 this.questionRepository.save(question); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~
src/modules/quiz/question.service.ts:15:47 - 錯誤 TS2769:沒有重載匹配此調用。 Overload 1 of 4, '(entities: DeepPartial[], options?: SaveOptions): Promise<(DeepPartial & Quiz)[]>',給出了以下錯誤。 “CreateQuestionDto”類型的參數不能分配給“DeepPartial[]”類型的參數。 類型“CreateQuestionDto”缺少類型“DeepPartial[]”中的以下屬性:長度、彈出、推送、連接等 29 個。 Overload 2 of 4, '(entity: DeepPartial, options?: SaveOptions): Promise<DeepPartial & Quiz>',給出了以下錯誤。 “CreateQuestionDto”類型與“DeepPartial”類型沒有共同的屬性。
15 返回等待 this.questionRepository.save(question);
問題實體:
import { BaseEntity, Column, Entity, PrimaryGeneratedColumn } from 'typeorm';
@Entity('questions')
export class Question extends BaseEntity {
@PrimaryGeneratedColumn()
id: string;
@Column({
type: 'varchar',
})
question: string;
}
問題庫:
import { EntityRepository, Repository } from 'typeorm';
import { Quiz } from './quiz.entity';
@EntityRepository(Quiz)
export class QuestionRepository extends Repository<Quiz> {}
CreateQuestion dto:
import { IsNotEmpty, Length } from 'class-validator';
export class CreateQuestionDto {
@IsNotEmpty()
@Length(3, 255)
question: string;
}
問題庫:
import { EntityRepository, Repository } from 'typeorm';
import { Quiz } from './quiz.entity';
@EntityRepository(Quiz)
export class QuestionRepository extends Repository<Quiz> {}
問題是您的QuestionRepository
指向另一個實體( Quiz
)。
將其更改為:
export class QuestionRepository extends Repository<Question> {}
這樣,您可以避免使用any
子句並直接在save
調用上使用 dto。
async createQuestion(question: CreateQuestionDto): Promise<Question> {
return await this.questionRepository.save(question);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.