title: typeorm) compile error on deleting many-to-one variable
body: <p>Here is my entities, delete-opration-related code and error logs.
  I'm using typeorm with nestjs.</p>
  <ul>
  <li>User</li>
  </ul>
  <pre class="lang-js prettyprint-override"><code>@Entity()
  @Unique(['username'])
  export class User extends BaseEntity {
      @PrimaryGeneratedColumn()
      id: number;
      @Column()
      username: string;
      @Column()
      password: string;
      @OneToMany((type) =&gt; Board, (board) =&gt; board.user, { eager: true, cascade: ['remove'] })
      boards: Board[];
  }
  </code></pre>
  <ul>
  <li>Board</li>
  </ul>
  <pre class="lang-js prettyprint-override"><code>@Entity()
  export class Board extends BaseEntity {
      @PrimaryGeneratedColumn()
      id: number;
      @Column()
      title: string;
      @Column()
      description: string;
      @Column()
      status: BoardStatus;
      @ManyToOne((type) =&gt; User, (user) =&gt; user.boards, { eager: false })
      user: User;
  }
  </code></pre>
  <ul>
  <li>Delete operation code <strong>(Error occurs here)</strong>
  <ul>
  <li>repository is the basic repository of typeorm.</li>
  </ul>
  </li>
  </ul>
  <pre class="lang-js prettyprint-override"><code>@Injectable()
  export class BoardsService {
      constructor(
          @InjectRepository(Board)
          private readonly repository: Repository&lt;Board&gt;
      ) { }
  
     // bla-bla...
  
      async deleteBoardById(id: number, user: User): Promise&lt;void&gt; {
          // below { id, user } complains the error.
          const result = await this.repository.delete({ id, user });
  
          if (result.affected === 0) {
              throw new NotFoundException(`Can't find Board with id ${id}`);
          }
      }
  
     // bla-bla...
  }
  </code></pre>
  <ul>
  <li>error logs</li>
  </ul>
  <pre><code> Argument of type '{ id: number; user: User; }' is not assignable to parameter of type 'string | number | FindOptionsWhere&lt;Board&gt; | Date | ObjectID | string[] | number[] | Date[] | ObjectID[]'.
    Types of property 'user' are incompatible.
      Type 'User' is not assignable to type 'boolean | FindOperator&lt;any&gt; | FindOptionsWhere&lt;User&gt; | FindOptionsWhere&lt;User&gt;[] | EqualOperator&lt;User&gt; | undefined'.
        Type 'User' is not assignable to type 'FindOptionsWhere&lt;User&gt;'.
          Types of property 'boards' are incompatible.
            Type 'Board[]' is not assignable to type 'boolean | FindOptionsWhere&lt;Board&gt; | FindOperator&lt;any&gt; | FindOptionsWhere&lt;Board&gt;[] | EqualOperator&lt;Board&gt; | undefined'.
              Type 'Board[]' is not assignable to type 'FindOptionsWhere&lt;Board&gt;[]'.
                Type 'Board' is not assignable to type 'FindOptionsWhere&lt;Board&gt;'.
                  Types of property 'hasId' are incompatible.
                    Type '() =&gt; boolean' is not assignable to type 'undefined'.
  
  56         const result = await this.repository.delete({ id, user });
  </code></pre>
  <p>I spent so many times in googles, typeorm documents and so on, but I can't find solution</p>
  <p>Is there any solution about it?</p>
  <hr />
  <p>Self answer:
  removing &quot;extends BaseEntity&quot; from each entities, the compile error gone. May be FUNCTION variables inside BaseEntity is not assignable to FindOptionWhere.</p>