打字稿缺少属性

时间:2021-07-15 02:16:48

标签: typescript

我有以下代码:

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

我收到以下错误,

<块引用>

输入'查询<{studentsdcid: any; }, any, {}>' 缺少类型 '{ Studentsdcid: string; 中的以下属性。 }[]': length, pop, push, concat, and 22 more.ts(2740)

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

2 个答案:

答案 0 :(得分:2)

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

lengthpoppushconcat 和 "22 more" 都是接口 Array<Type> 的属性,这是您的泛型类型为 result 声明。

您收到该错误是因为您使用的是 'Query<{ Studentsdcid: any; }, any, {}>' 在需要 Array 的地方,并且 Query 不是 Array 也不是扩展它。

答案 1 :(得分:1)

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

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

如果是,但仍然出现错误,请添加 x 的输入,如下所示:

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

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