typescript - 类型 'findAncestors' 上不存在属性 'Repository '

标签 typescript typeorm

您好,我的 typeorm 代码有问题。

我按照这里的示例进行操作:https://github.com/typeorm/typeorm/blob/master/docs/tree-entities.md#materialized-path-aka-path-enumeration .

所以我的实体看起来像:

import {
    Entity,
    PrimaryGeneratedColumn,
    Column,
    CreateDateColumn,
    UpdateDateColumn,
    Tree,
    TreeChildren,
    TreeParent,
} from 'typeorm';

@Entity()
@Tree('materialized-path')
export class Category {

    @PrimaryGeneratedColumn()
    id: number;

    @Column()
    name: string;

    @TreeChildren()
    children: Category[];

    @TreeParent()
    parent: Category;

    @CreateDateColumn({
        type: 'timestamp',
        default: () => 'CURRENT_TIMESTAMP(6)',
    })
    public createdAt: Date;

    @UpdateDateColumn({
        type: 'timestamp',
        default: () => 'CURRENT_TIMESTAMP(6)',
        onUpdate: 'CURRENT_TIMESTAMP(6)',
    })
    public updatedAt: Date;
}

在名为“CategoryController”的 Controller 中,我想获取整个树,但出现“findAncestors”不存在的错误。

import {  getRepository } from 'typeorm';
import {Category} from "../entity/Categories";

export class CategoryController {
    private categoryRepository = getRepository(Category);

    async getCategoryTreeBySingleCategory(category:Category|string){
        {...}
        return await this.categoryRepository.findAncestors(category); // <--- Property 'findAncestors' does not exist on type 'Repository '.
    }
}

有人知道原因并可以帮助我吗?

提前致谢!

最佳答案

成员函数findAncestors仅在类型TreeRepository上定义,您可以使用getTreeRepository而不是getRepository获得该类型.

所以写

import {  getRepository } from 'typeorm';
import {Category} from "../entity/Categories";

export class CategoryController {
    private categoryRepository = getTreeRepository(Category);

    async getCategoryTreeBySingleCategory(category:Category|string){
        {...}
        return await this.categoryRepository.findAncestors(category);
    }
}

关于typescript - 类型 'findAncestors' 上不存在属性 'Repository ',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64241567/

相关文章:

在 Firebug 中调试 TypeScript

TypeScript 变量名作为接口(interface)类型?

postgresql - TypeORM 使用 ST_GeomFromGeoJSON 插入几何类型

postgresql - 如何在 TypeORM 中定义 varchar 和 enum?

nestjs - Typeorm 关系 - 按 id 保存

postgresql - 将 Date.now() 保存到时间戳列但获取超出范围的日期/时间字段值

javascript - 我需要根据数组的长度创建字符串值

具有延迟加载子模块的 Angular 2 项目在第一次编译尝试时未解析子模块

javascript - Angular/TypeScript,当使用多个组件时,第一个组件影响第二个组件

javascript - TypeScript 中未找到存储库错误,当我通过 typeorm 连接到 MySQL 时遇到该错误