Typescript 类型脚本/环回相关模型
我试图定义相关的模型,比如 我已经为HasMany定义了一个实现时的接口: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 *
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
})