use*_*394 17 typescript angular
我正在使用 Angular 来使用“ https://coursetro.com/posts/code/171/Angular-7-Tutorial---Learn-Angular-7-by-Example ”中的示例来构建此应用程序。它是一个确切的代码,但我仍然收到“user:Object”
的错误
我该如何修复这个错误?
错误 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);
}
);
}
}
Run Code Online (Sandbox Code Playgroud)
我的 Angular 基于 ng 版本:Angular CLI:11.1.2
节点:14.15.4
操作系统:win32 x64
角度:11.1.1
...动画、常见、编译器、编译器-cli、核心、表单
...平台浏览器、平台浏览器动态、路由器
Ivy 工作区:是
套餐版本
@Angular-devkit/建筑师0.1101.2
@Angular-devkit/build-Angular 0.1101.2
@Angular-devkit/核心 11.1.2
@angular-devkit/schematics 11.1.2
@角度/cli 11.1.2
@schematics/角度11.1.2
@schematics/更新0.1101.2
RXJS 6.6.3
打字稿 4.1.3
Zze*_*Zze 21
正如@alcfeoh评论中指出的,您收到此错误是因为您正在定义变量但没有为其声明值。简短的答案是,如果您不想声明一个值,那么......只需敲击它即可:
users!: Object;
Run Code Online (Sandbox Code Playgroud)
typescript 抛出此错误的原因是为了防止以下情况:
someNumber: number;
Run Code Online (Sandbox Code Playgroud)
如果没有包含声明,那么someNumber即使我们明确没有将此类型列为 , 的值也将是未定义的someNumber: number | undefined;。但在许多其他语言中, someNumber 会收到一个默认值,例如0。然而 JavaScript 并不是这样工作的。如果在这种情况下你要这样做,someNumber + 1结果将是null。
小智 13
你应该在 tsconfig.json/"compilerOptions" 下面添加此代码
"strictPropertyInitialization": false,
Run Code Online (Sandbox Code Playgroud)