【问题标题】:Typescript - bracket index into object does not yield error打字稿-对象的括号索引不会产生错误
【发布时间】:2018-05-18 09:21:30
【问题描述】:

我发现 TypeScript 允许我使用括号表示法通过索引访问一个对象,而它只有键。例如:

interface testObject {
    name: string;
    id: number;
}

let first: testObject = {name: "Marquizzo", id: 1};

let second = first[1]; // <-- Should yield error!

first[1] 应该给我一个错误,因为1 没有定义为testObject 接口中的有效键。我可以打开一个标志来避免这种情况发生吗?

【问题讨论】:

  • 是的,这个错误是用--noImplicitAny报告的

标签: javascript typescript


【解决方案1】:

听起来您没有将noImplicitAny compiler option 设置为true

将该选项设置为false 不会产生错误,但如果将其设置为true 则会产生错误:

[ts] Element implicitly has an 'any' type because type 'testObject' has no index signature.

【讨论】:

  • 啊,谢谢!这是一把双刃剑,因为如果我想在上面的示例中做类似let keyName = "name"; let second = first[keyName]; 的事情,那么这也是不允许的。
  • 在你绝望之前看看suppressImplicitAnyIndexErrors选项。
猜你喜欢
  • 1970-01-01
  • 2017-11-10
  • 2022-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-12
  • 2018-01-22
  • 1970-01-01
相关资源
最近更新 更多