Angular 类型脚本错误-类型';未定义';不可分配给类型

Angular 类型脚本错误-类型';未定义';不可分配给类型,angular,typescript,undefined,Angular,Typescript,Undefined,在我的代码中,我得到了以下类型脚本错误。我尝试了几乎所有的解决方案,但没有一个对我有效。我无法在tsconfig.json文件中设置stricnullchecks:false。我正在寻找不同的解决方案 错误1- 类型为“BuildMember | undefined”的参数不可赋值为类型为“BuildMember”at1st Error 错误2-类型“undefined”不可分配给类型“BuildMember”。在第二和第三个错误处 对象在第二和第三个错误时可能为“未定义” 这里是界面 expo

在我的代码中,我得到了以下类型脚本错误。我尝试了几乎所有的解决方案,但没有一个对我有效。我无法在
tsconfig.json
文件中设置
stricnullchecks:false
。我正在寻找不同的解决方案

错误1-
类型为“BuildMember | undefined”的参数不可赋值为类型为“BuildMember”
at
1st Error

错误2-
类型“undefined”不可分配给类型“BuildMember”。
第二和第三个错误处

对象在第二和第三个错误时可能为“未定义”

这里是
界面

export interface BuildMember {
  tool?: BuildMember[];
  hastool?: boolean;
  };
}
WindowComponent.ts

export class WindowComponent {
  @Output() selectEvent = new EventEmitter<BuildMember>();
    focus?: BuildMember;
  constructor() { // some code}

  checkData(possible: string, serviceData: string) {
    if (serviceData == "X") {
      this.focus = this.yankService.run.tool.filter(
        (data: BuildMember) => data.treepossible == possible[0])[0];
    } 

    this.displaytool(this.focus).then(async () => {   ---------->>>>>  1st Error
      var temp: String[] = []; 
      if (possible.length > 1) {
        for (let i = 0; i < possibles.length - 1; i++) {
          temp.push(possibles[i]);
          match = temp.join(".");
          if (this.focus !== undefined) {
            this.focus = this.focus.tool.filter(
              (data: BuildMember) => data.treepossible == match)[0];  ------->>>  2nd Error
            await this.displaytoolNoToggle(this.focus);
          }
        }
        if (this.focus) {
          this.focus = this.focus.tool.filter(
            (data: BuildMember) => data.treepossible == possible)[0];  ------>>>  3rd Error
          this.yankService.select(this.focus);
        }
      }
    });
  }  
}
导出类窗口组件{
@Output()selectEvent=neweventemitter();
焦点?:构建成员;
构造函数(){//some code}
checkData(可能为字符串,serviceData为字符串){
如果(serviceData==“X”){
this.focus=this.yankService.run.tool.filter(
(data:BuildMember)=>data.treepobsible==可能[0])[0];
} 
this.displaytool(this.focus).then(async()=>{---------------->>>>>第一个错误
变量温度:字符串[]=[];
如果可能(长度>1){
for(设i=0;idata.treepossible==match)[0];------>>第二个错误
等待这个.displaytoolNoToggle(这个.focus);
}
}
如果(这个焦点){
this.focus=this.focus.tool.filter(
(数据:BuildMember)=>data.treepossible==可能)[0];------>>>第三个错误
this.yankService.select(this.focus);
}
}
});
}  
}

这里的代码是否构成了一个适合放入独立IDE的组件?如果没有,那么请考虑提供这样一个例子,以便其他人可以更容易地展示自己的问题,并建议他们自己测试过的答案。祝你好运也许这会帮助其他人发现您的问题,但请注意,a应该是最小的:它应该具有演示问题所需的最少代码量。。。并且不应该有任何不相关的内容(例如,
HostResourceResolver:无法在/~/src/app/app.component.ts
的上下文中解析./treeView.component.html)。好的,但这是一个具有许多依赖项的大型项目。你认为如果我添加更多的代码会有助于解决这个问题吗?请参考指南,并具体阅读什么构成了。这里的代码是否构成了适合放入独立IDE的代码?如果没有,那么请考虑提供这样一个例子,以便其他人可以更容易地展示自己的问题,并建议他们自己测试过的答案。祝你好运也许这会帮助其他人发现您的问题,但请注意,a应该是最小的:它应该具有演示问题所需的最少代码量。。。并且不应该有任何不相关的内容(例如,
HostResourceResolver:无法在/~/src/app/app.component.ts
的上下文中解析./treeView.component.html)。好的,但这是一个具有许多依赖项的大型项目。你认为如果我添加更多的代码来帮助解决这个问题吗?请参考指导原则,并具体阅读什么构成一个问题。