angular - 角度错误 TS2564:属性“用户”没有初始值设定项,并且未在构造函数中明确分配
问题描述
我正在使用“ https://coursetro.com/posts/code/171/Angular-7-Tutorial---Learn-Angular-7-by-Example ”中的这个例子来构建这个应用程序。
它是一个确切的代码,但我仍然收到“用户:对象”的错误
我该如何解决这个错误?
错误 TS2564:属性 'users' 没有初始化程序,并且未在构造函数中明确分配。
12 个用户:对象;~~~~~
Here is the exact code as per website:
import { Component, OnInit } from '@angular/core';
import { DataService } from '../data.service';
@Component({
selector: 'app-home',
templateUrl: './home.component.html',
styleUrls: ['./home.component.scss']
})
export class HomeComponent implements OnInit {
//h1Style:boolean = false;
users: Object;
constructor(private data: DataService) { }
ngOnInit(): void {
this.data.getUsers().subscribe(data => {
this.users = data
console.log(this.users);
}
);
}
}
我的 Angular 基于 ng 版本:Angular CLI: 11.1.2
节点:14.15.4
操作系统:win32 x64
角度:11.1.1
... 动画、通用、编译器、编译器-cli、核心、表单
... 平台浏览器、平台浏览器动态、路由器
常春藤工作区:是
包版本
@angular-devkit/架构师 0.1101.2
@angular-devkit/build-angular 0.1101.2
@angular-devkit/核心 11.1.2
@angular-devkit/原理图 11.1.2
@角/cli 11.1.2
@原理图/角度 11.1.2
@原理图/更新 0.1101.2
rxjs 6.6.3
打字稿4.1.3
解决方案
正如@alcfeoh
评论中所指出的,您收到此错误是因为您正在定义一个变量但没有为它声明一个值。简短的回答是,如果您不想声明一个值,那么……就敲吧:
users!: Object;
typescript 抛出此错误的原因是为了防止以下情况:
someNumber: number;
如果没有包含声明,那么someNumber
即使我们没有明确地将这种类型列为 , 的值也将是未定义的someNumber: number | undefined;
。但在许多其他语言中, someNumber 会收到一个默认值,例如0
. 然而,这不是 Javascript 的工作方式。如果在这种情况下您要这样做someNumber + 1
,结果将是null
.
推荐阅读
- git - 如何让我的网络服务器从我的仓库自动更新?
- python - 错误:关机后无法注册 atexit
- google-oauth - Facebook/Google 登录 API,如何确保用户不是机器人
- python - 如何使用云运行python api从大查询表中读取大数据以及系统配置应该是什么?
- php - Laravel 如何让 Auth 类在不同的模型而不是用户上执行函数
- python - Kivymd:无法在 Scrollview 中添加多个文本字段和按钮
- sql - SQL FOR XML 属性和值
- php - 使用 FTP 类从 codeigniter 2 中的 ftp 下载文件
- node.js - 对于 next.js proejct 的纱线工作区子包,我应该使用 commonjs 还是 es 模块?
- javascript - Ckeditor 5 Pagination,使用自定义按钮浏览页面