【问题标题】:Typescript missing properties打字稿缺少属性
【发布时间】:2021-09-23 23:09:42
【问题描述】:

我有以下代码:

const result: Array<{ id: string }> = list.map((x) => {
    return {
        id: x,
    };
});

我收到以下错误,

键入'查询' 缺少来自类型 '{ studentsdcid: string; 的以下属性}[]':长度、pop、push、concat 和 22 多个.ts(2740)

不太确定我需要在这里更改什么。

【问题讨论】:

  • 创建一个最小的、可重现的例子

标签: typescript


【解决方案1】:

Typescript 可能无法确定 list 的类型。

您是否在上面的代码中声明了:const list: string[] = []

如果是,但您仍然收到错误,请像这样添加输入 x:

const result: Array<{ id: string }> = list.map((x: string) => {
                return {
                    id: x,
                };
            });

但是鉴于您的问题的日志,问题似乎是在代码中稍后使用result 对象的地方。 ?

【讨论】:

    【解决方案2】:

    您没有包含所有相关代码,所以我无法告诉您您到底做错了什么,但我可以解释错误并猜测您做错了什么。

    lengthpoppushconcat 和“22 more”都是接口Array&lt;Type&gt; 的属性,这是您为result 声明的泛型类型。

    您收到该错误是因为您使用的是 'Query' 在一个需要 Array 的地方,Query 不是 Array 也不是扩展它。

    【讨论】:

    • 这真的很晚了,很抱歉,但发生这种情况是因为我没有等待查询。
    猜你喜欢
    • 2021-04-29
    • 2013-09-17
    • 2022-01-17
    • 1970-01-01
    • 2017-11-18
    • 2017-12-22
    • 2018-03-16
    • 2019-05-02
    • 2021-11-13
    相关资源
    最近更新 更多