提取泛型中特定类型的密钥

时间:2018-10-26 18:57:06

标签: typescript

我正在尝试创建一个通用类Foo,其中DateKey在T的键中,并指示T中的日期字段。因此,我的第一种方法是:

abstract class Foo<T extends { [P in DateKey]: Date }, DateKey extends keyof T> {
  abstract get dateKey(): DateKey // Subclasses implement this
  constructor(x: T) {
    const z = x.foo;
    // z is a Date
  }
}

我想要的是将x[this.dateKey]键入为Date,而在x上没有其他可访问的字段(即,出于其他所有目的,它是未知的/任何)。但是实际上,发生的情况是x.anything被键入为日期,并且我可以访问任何属性。

enter image description here

有人可以向我解释为什么会这样,和/或我如何实现我的目标吗?谢谢!

0 个答案:

没有答案