打字稿:在超类中引用子类属性?

Leo Jiang

例如:

class Super {
  getProp(key: ???) {
    return this[key];
  }
}

class Sub extends Super {
  foo = 123;
}

const sub = new Sub();
console.log(sub.getProp('foo'));

的类型是否可能key是“子类的任何属性”?

罗伯托·兹维科维奇

只是 keyof this

class Super {
    getProp(key: keyof this) {
        return this[key];
    }
}

class Sub extends Super {
    foo = 123;
}

const sub = new Sub();
console.log(sub.getProp('foo'));
console.log(sub.getProp('something')); // Error

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章