簡體   English   中英

hasOwnProperty 總是使用 Typescript 返回 false

[英]hasOwnProperty always returns false using Typescript

我正在 TypeGraphQL 中實現一個過濾器,我首先檢查該類是否具有用戶請求過濾的屬性。 我正在嘗試使用 hasOwnProperty 但它總是返回 false 即使該屬性是正確的。

在解析器中查詢:

@Query(() => [Dog] )
  async dogs(
    @Arg('filter') filter: FilterInput
  ): Promise<Dog []> {
    console.log(filter.field)
    console.log(Dog.prototype.hasOwnProperty(filter.field))

    const dogs = await Dog.find({where: {[filter.field]: `${filter.value}`}})

    return dogs
  }

狗實體:

@ObjectType()
@Entity()
export class Dog extends BaseEntity {
  @Field(() => ID)
  @PrimaryGeneratedColumn()
  id: number

  @Field()
  @Column()
  name: string

  @Field()
  info(@Root() parent: Dog): string {
    return `gender: ${parent.gender} ; name: ${parent.name}`
  }

  @Field()
  @Column()
  gender: string
}

過濾器輸入類型:

import { InputType, Field } from "type-graphql";


@InputType()
export class FilterInput {
  @Field()
  field: string

  @Field()
  value: string
}

我能夠用枚舉解決這個問題,只需將輸入字符串與枚舉值進行比較:

export enum dogFields {
  name = 'name',
  gender = 'gender'
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM