【问题标题】:typescript interface for object property [only refers to a type but is being used as a value here.]对象属性的打字稿接口[仅指一种类型,但在此处用作值。]
【发布时间】:2018-09-26 03:13:09
【问题描述】:
state = {
    x: Array<any>(),
    y: number
}

y 给我以下错误:

仅指一种类型,但在此处用作值。

这是可以理解的,因为它是对象的属性。

我怎样才能为此指定一个类型,例如x

【问题讨论】:

  • 在您的代码中,您隐式定义了一个变量,但您没有给y 任何值(x 是一个数组)。你确定要这样做吗?或者你想定义一个接口/类型?
  • 因此,除了数组之外,在此上下文中定义类型的唯一方法是隐式。我说的对吗?

标签: typescript


【解决方案1】:

问题是您试图将具有给定结构的类型分配给state。如果要声明变量或字段需要使用:

let state : {
    x: Array<any>,
    y: number
}

//Or for a field:
class Foo {
    state: {
        x: Array<any>,
        y: number
    }
}

如果你想创建这样一个对象,你需要赋值,而不是类型:

let state = { x: [], y: 0}  // empty array for x

【讨论】:

    猜你喜欢
    • 2017-08-24
    • 2020-04-15
    • 2018-08-07
    • 2021-01-07
    • 2019-02-02
    • 2020-04-28
    • 2021-08-23
    • 2020-12-05
    • 2018-03-31
    相关资源
    最近更新 更多