当前位置: 首页 > 知识库问答 >
问题:

typescript - 这段for..in代码的报错原因是?

段干帅
2024-02-06
import { Component, OnInit } from '@angular/core';@Component({  selector: 'rxc-dashboard',  templateUrl: './dashboard.component.html',  styleUrls: ['./dashboard.component.scss']})export class DashboardComponent implements OnInit {  obj = { text: null };  ngOnInit(): void {    for (let key in this.obj) {      console.log(key) // text      console.log(this.obj[key]); // error    }  }}

image.png

不是很理解为什么会报错? 在js当中这类代码是可以正常执行的

obj = {    text: null};for (let key in this.obj) {    console.log(key) // text    console.log(this.obj[key]); // null}

后续

加了类型的定义any, 报错就消失了..

image.png

但是为什么会有这种情况出现呢?
我在 ts 中不给类型直接赋值, 难道程序识别不出 this.obj 是一个对象吗?

共有1个答案

拓拔富
2024-02-06

猜测应该是[]里可能还会放数组的索引, 这样程序就不确定他到底是一个对象还是一个数组, 所以还是要在定义时还是要给一个明确的类型

 类似资料: