将类型作为对象或打字稿中的数组

问题描述 投票:0回答:2

我是打字稿新手。

我有这样的课程

class Document {
  constructor (data, id) {
    this.data = data
    this.id = id
  }
}

[我在这里知道ID将为String,但数据将为objectarray

有人可以帮我弄清楚它的接口是什么。

[[更新:]我尝试了什么?

我创建了这样的界面

interface Documents {
  data: Array | Object,
  id: Number
}

但是这会产生以下错误(数组下的红色下划线)

通用类型'Array'需要1个类型参数。

如果有什么不同,我希望我的数组为empty或包含objects的列表

typescript
2个回答
1
投票

您需要指定数组的基础类型,因为Array是类型构造函数。我会尽可能地转向原始类型。另外,如果您的数据是一个对象,一个空数组或一个对象列表,我将保持简单,仅将其定义为(可能为空)对象列表。因此,您可能最终会遇到这样的事情:

type DocData = [object]
interface DocumentInterface {
  data: DocData
  id: number
}

class Doc implements DocumentInterface {
    data: DocData
    id: number

    constructor (data: DocData, id: number) {
        this.data = data
        this.id = id
    }
}


0
投票
class Document {
    private data: [] | object;
    private id: string;
  constructor (data: [] | object, id:string) {
    this.data = data
    this.id = id
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.