item没有类型注释,并在其自己的初始化程序中直接或间接引用

leo*_*ger 0 typescript graphql

我有一个模型Location,这种关系与自身有关。

class Location extends Model<Location> {
    ...

    @BelongsTo(() => Location, "countryId")
    public country?: Location;

    @BelongsTo(() => Location, "stateId")
    public state?: Location;

    @HasMany(() => Location, "countryId")
    public states?: Location[];

    @HasMany(() => Location, "stateId")
    public regions?: Location[];

    @HasMany(() => Location, "regionId")
    public places?: Location[];

    ...
}
Run Code Online (Sandbox Code Playgroud)

所以基本上counties有很多states很多regions等等。我想将它实现为一个GraphQLType

我尝试了什么:

const LocationType = new GraphQLObjectType({
    name: "LocationType",
    fields: () => ({
        ...
        states: {type: new GraphQLList(LocationType)},
        ...
    }),
});
Run Code Online (Sandbox Code Playgroud)

错误我得到

“ LocationType”隐式具有类型“ any”,因为它没有类型注释,并且在其自己的初始化程序中直接或间接引用。

Mar*_*iel 5

您只需将LocationType类型指定为即可GraphQLObjectType

像这样:

const LocationType: GraphQLObjectType = new GraphQLObjectType({
    name: "LocationType",
    fields: () => ({
        ...
        states: {type: new GraphQLList(LocationType)},
        ...
    }),
});
Run Code Online (Sandbox Code Playgroud)