不满足打字稿中的约束“对象”

时间:2019-07-28 01:52:31

标签: typescript

我将一个类定义为:

mciSendString

AllocConsole在哪里:

export class SerializedQuery<T extends object = IDictionary> { ... }

稍后尝试使用该类时,请执行以下操作:

IDictionary

此处的export interface IDictionary<T = any> { [key: string]: T; } 指的是定义此方法的类:

o._query = new SerializedQuery<T>(`${r.dbPath}`);

T的引用是一个正确导入的类,但是当我在export class WatchRecord<T extends Model> extends WatchBase<T> { ... } 的构造函数中遇到类型错误时:

error

但是具有多个公共属性的类肯定可以满足Model的要求,实际上我在相同的使用代码库中找到了另一个示例:

SerializedQuery<T>

这似乎是相同的输入,但是没有错误?为了隔离一点,我删除了object并将其替换为 public static async all<T extends Model>( model: new () => T, options: IListOptions<T> = {} ): Promise<List<T>> { const query = new SerializedQuery<T>().orderByChild("lastUpdated"); const list = await List.fromQuery<T>(model, query, options); return list; } 以使该需求多了1:1,但这没什么区别。

1 个答案:

答案 0 :(得分:0)

您正在Clock: perf_counter Adjustable: False Implementation: QueryPerformanceCounter() Monotonic: True Resolution(ns): 100 静态方法内创建time.sleep(),该方法具有自己的SerializedQuery<T>泛型类型声明,并且该类型不符合record<T>约束。 T声明的extends Model类型仅适用于该类的实例,但不适用于静态方法。您还应该向T extends Model方法WatchRecord类型声明中添加extends Model,以使这些类型兼容。

record