typescript对象属性的接口[仅引用类型但在此处被用作值]

3
state = {
    x: Array<any>(),
    y: number
}

y 给我以下错误:

只能引用类型,但此处正在使用作为值。

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

如何像 x 一样指定此类型?


在你的代码中,你隐式地定义了一个变量,但是你没有给 y 任何值(x 是一个数组)。你确定要这样做吗?还是你想要定义一个接口/类型? - Oscar Paz
所以,在这种情况下,除了数组外,唯一定义类型的方式是隐式地定义。我说得对吗? - Akore
1个回答

2
问题是你试图为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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接