【问题标题】:Typescript Type "Object does not satisfy the constraint 'extends TE' for type parameterTypescript Type“对象不满足类型参数的约束'extends TE'
【发布时间】:2015-04-01 10:29:26
【问题描述】:

在发布问题之前,我想知道是编程错误还是编译器错误。

Typescript 1.4(在 Visual Studio 2013 中运行)抱怨以下小程序:

export class TE {
  value : string;
}
export class A<T extends TE> {
}
export class B extends A<TE> {
  constructor(public name: string) {
     super(); // Error: Type Object does not satisfy the constraint extends TE for type parameter T.
  }
}

截图相同:

如果我删除 super() 子句,它会给出:

一个相关的问题是Type T does not satisfy the constraint C for type parameter P error in TypeScript,但它不涉及构造函数。

上面的小sn-p要怎么编译?

【问题讨论】:

  • 这里没有问题:typescriptlang.org/Playground
  • 如果我直接运行编译不会导致问题。但是这个错误一直出现在我的编辑器中,为了可读性和我的合作者,我想摆脱它们。
  • VS2013/TS1.4也没有问题
  • 我有VS2013,我意识到安装了TS1.0。我切换到 TS1.4。但是现在不仅问题相同,而且不再有语法高亮。无论如何,感谢您尝试。我很高兴它不会在至少一个地方造成问题。
  • 确保你已经在你的路径以及你的机器上更新了 TypeScript。 where tsc 例如从命令提示符(开发人员命令提示符)将显示它可能在哪里找到。不幸的是,在早期版本中,我通常会有 3 或 4 个不同的位置。

标签: generics types constructor typescript extends


【解决方案1】:

它在操场上编译得很好:

还有 Visual Studio 和命令行:

【讨论】:

  • 很好,我看到了,为什么它会在我的机器上抛出错误,这是我想知道的。也许它只是更清晰。
  • 也许吧。尝试禁用它。
  • 是的,但在禁用 ReSharper 之前,请在 YouTrack 中创建一个问题,以便我们了解该问题并能够解决它。 :) 谢谢!我为这个问题创建了一个问题,将在 9.1 中修复:youtrack.jetbrains.com/issue/RSRP-432550
  • 我重新检查了新的 9.1 版本,问题消失了。欢迎您尝试 9.1 EAP 构建:confluence.jetbrains.com/display/ReSharper/ReSharper+9.1+EAP
猜你喜欢
  • 2022-10-13
  • 2013-09-02
  • 1970-01-01
  • 2020-10-25
  • 2020-07-07
  • 2019-09-19
  • 2019-09-12
  • 2021-01-28
  • 1970-01-01
相关资源
最近更新 更多