Typescript 类型脚本/环回相关模型

Typescript 类型脚本/环回相关模型,typescript,loopbackjs,typescript-typings,Typescript,Loopbackjs,Typescript Typings,我试图定义相关的模型,比如 我已经为HasMany定义了一个实现时的接口: interface IHasMany { /** * Create a target model instance * @param {Object} targetModelData The target model data * @param {Function} callback The callback function *

我试图定义相关的模型,比如

我已经为HasMany定义了一个实现时的接口:

  interface IHasMany {
        /**
         * Create a target model instance
         * @param {Object} targetModelData The target model data
         * @param {Function} callback The callback function
         */
        // HasMany.prototype.create = function(targetModelData, options, cb)
        create<T = any>(targetModelData: any, callback?: (err: Error, instance: T) => void): Promise<T> | void;

(snip ... other functions findById, exists, updateById, destroyById omitted for bevity)
在Typescript中,此函数将按如下方式使用:

await createdRole.principals.create({
    principalType: loopback.RoleMapping.USER, 
    principalId: createdUser.id
});
  class Role extends PersistedModel {
        static OWNER: string;
        static RELATED: string;
        static AUTHENTICATED: string;
        static UNAUTHENTICATED: string;
        static EVERYONE: string;

        /** HasMany RoleMappings */
        //  createdRole.principals.create({principalType: loopback.RoleMapping.USER, principalId: createdUser.id});
        principals: HasMany<RoleMapping>;
await createdRole.principals.create({ 
    principalType: loopback.RoleMapping.USER, 
    principalId: createdUser.id
})
(注意:loopback.RoleMapping.USER是我将提交给DT的即将发布的PR中的一个常量)

现在,我需要将这个接口附加到角色模型,并让它引用角色映射模型

  class Role extends PersistedModel {
        static OWNER: string;
        static RELATED: string;
        static AUTHENTICATED: string;
        static UNAUTHENTICATED: string;
        static EVERYONE: string;

        /** HasMany RoleMappings */
        static async principals = ????
对下一步有何指导?似乎我需要将IHasMany扩展为角色映射特定的(例如IHaveManyRoleMappings)——可能使用,然后让主体类似于:

static async principals = class RoleMappings implements IHasManyRoleMappings {};

好的,对于其他遇到这个问题的人来说,关键是:

在界面中,使其成为具有以下内容的通用界面:


这真是太棒了。我在定义每个类的get、find和count
  class Role extends PersistedModel {
        static OWNER: string;
        static RELATED: string;
        static AUTHENTICATED: string;
        static UNAUTHENTICATED: string;
        static EVERYONE: string;

        /** HasMany RoleMappings */
        //  createdRole.principals.create({principalType: loopback.RoleMapping.USER, principalId: createdUser.id});
        principals: HasMany<RoleMapping>;
await createdRole.principals.create({ 
    principalType: loopback.RoleMapping.USER, 
    principalId: createdUser.id
})