打字稿缺少属性

Posted

技术标签:

【中文标题】打字稿缺少属性【英文标题】: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)

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

【问题讨论】:

创建一个最小的、可重现的例子 【参考方案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 也不是扩展它。

【讨论】:

这真的很晚了,很抱歉,但发生这种情况是因为我没有等待查询。

以上是关于打字稿缺少属性的主要内容,如果未能解决你的问题,请参考以下文章

缺少类型的属性(打字稿)

为啥此语句会引发打字稿错误?

打字稿:通过打字重命名obj属性

打字稿错误 - 属性“标题”的类型不兼容

打字稿中的可选属性类

打字稿限制对象属性的计数