我收到以下错误
error TS2322: Type 'MyConfig| undefined' is not assignable to type 'MyConfig'.
Type 'undefined' is not assignable to type 'MyConfig'.
我们可以从一个组件中调用具有以下输入变量的MyAppComponent
@Input() userInfoInput?: UserInfo;
@Input() MyConfigInput?: MyConfig;
UserInfo是如下所示的接口模型
export interface UserInfo{
[key: string]: any;
firstName: string | undefined;
middleName: string | undefined;
lastName: string | undefined;
}
而MyConfig是一个类
export class MyConfig{
private _name!: string;
private _description!: string;
private _version!: string;
private _dateFormat!: string;
private _maxContentLength!: number;
constructor(
name: string,
description: string,
version: string,
dateFormat: string,
maxContentLength: number,
) {
this.name = name;
this.description = description;
this.version = version;
this.dateFormat = dateFormat;
this.maxContentLength = maxContentLength;
}
在当前功能代码中,@Input
变量使用非空声明操作符!
修饰,因为我无法在构造函数中明确定义它们。我想改用?
/ MyConfigInput : MyConfig | undefined
,但出现此错误,无法为这些类型分配undefined。我已将我创建为@Input
的其他类型提供给该组件进行测试,它们没有报告相同的错误。因此,我想我为什么不能特别为这些类型分配undefined
缺少一些直觉。
任何对此问题的见解将不胜感激!