Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular4和TypeScript属性在类型any[]上不存在_Angular_Typescript - Fatal编程技术网

Angular4和TypeScript属性在类型any[]上不存在

Angular4和TypeScript属性在类型any[]上不存在,angular,typescript,Angular,Typescript,我似乎无法理解这件事。。。我从api获取数据并将其存储为任意[]。我正试图得到这样的数据 this.data.results[i].datas[j].dataType 但是我得到的错误属性results不存在于any[]类型上。我试着看了很多其他的问题和答案,但我似乎不明白 (我是否应该创建一个数据对象,而不是将数据分配给任何[],而是将其分配给对象?) 谢谢你的帮助 您应该将this.data的类型定义更改为: data: {results?: any[]} = {}; 我总是(如果可能的

我似乎无法理解这件事。。。我从api获取数据并将其存储为任意[]。我正试图得到这样的数据

this.data.results[i].datas[j].dataType
但是我得到的错误属性results不存在于any[]类型上。我试着看了很多其他的问题和答案,但我似乎不明白

(我是否应该创建一个数据对象,而不是将数据分配给任何[],而是将其分配给对象?)
谢谢你的帮助

您应该将
this.data
的类型定义更改为:

data: {results?: any[]} = {};
我总是(如果可能的话)至少声明这样一个接口:

interface IDataset {
    dataType: string;
    value: string;
    // Whatevery your dataset holds
}

interface IResultset {
    datas: IDataset[9]
}

interface IData {
    results: IResultset[];
}

class SomeClass {
    data: IData[];

    someFunction() {
        this.data.results[i].datas[j].dataType = "whatever";
    }
}

通过这种方式,您可以获得数据的智能感知,必须以有意义的方式构造数据,并且可以在客户端和服务器端使用这些接口(如果您也在服务器上工作)

您可以输入更多代码以帮助您吗?以及准确完整的错误消息。还要添加打印值
console.log(…)
准确返回的内容。你提到了
any[]
,但是你的代码没有显示你是如何使用它的。你是遇到了typescript编译错误还是运行时错误?是的,我知道,我真的应该声明对象/接口。但是我的固执起了作用,我想用这种方式来解决这个问题:P现在我用这种方式来解决这个问题,我将创造这个对象哈哈,我只是想要victory@PierreDuc我有一个动态表单,在编译时不知道任何表单控件,在编译时我得到的ex:Property“name”在类型“{}”上不存在。我只在使用
aot
编译时收到此错误。请将数据类型更改为
any
,或将其更改为
{name?:string}