angular - Type 'undefined' kan ikke tilordnes til typen 'ApexAxisChartSeries | ApexNonAxisChartSeries'


Jeg har brukt denne koden i ts

export type pieChartOptionss = {
  series?: ApexNonAxisChartSeries | '';
  chart?: ApexChart | '';
  legend?: ApexLegend | '';
  dataLabels?: ApexDataLabels | '';
  responsive?: ApexResponsive[] | '';
  labels?: any | '';
};
export class DashboardComponent implements OnInit {
 public pieChartOptionss!: Partial<pieChartOptionss>;
}
     (response: any) => {
          this.user_data = response.results;
          console.log('user_data', this.user_data)
          this.user_data_true = this.user_data.filter(x => x.is_active === true)
          this.user_data_false = this.user_data.filter(x => x.is_active === false)
          this.pieChartData = [this.user_data_true.length, this.user_data_false.length];
          this.pieChartOptionss = {
            series: [this.user_data_true.length, this.user_data_false.length],
            chart: {
              type: 'donut',
              width: 270,
            },
            legend: {
              show: false,
            },
            dataLabels: {
              enabled: true,
            },
            labels: ['Active', 'Inactive'],
            responsive: [
              {
                breakpoint: 480,
                options: {},
              },
            ],
          };
        }

og i HTML har jeg brukt denne koden:

    <div class="body" *ngIf="pieChartOptionss">
          <apx-chart [series]="pieChartOptionss?.series" [chart]="pieChartOptionss?.chart"
            [labels]="pieChartOptionss?.labels" [responsive]="pieChartOptionss?.responsive"
            [dataLabels]="pieChartOptionss?.dataLabels" [legend]="pieChartOptionss?.legend" class="apex-pie-center">
          </apx-chart>
          <div class="table-responsive m-t-15">
            <table class="table align-items-center">
              <tbody>
                <tr>
                  <td><i class="fa fa-circle col-cyan mr-2"></i> {{ "active" | translate }}</td>
                  <td class="col-blue">{{pieChartOptionss?.series[0]}}</td>
                </tr>
                <tr>
                  <td><i class="fa fa-circle col-green mr-2"></i>{{ "inactive" | translate }}</td>
                  <td class="col-green">{{pieChartOptionss?.series[1]}}</td>
                </tr>
              </tbody>
            </table>
          </div>
        </div>

Problemet er, når jeg kjører 'ng serve' på prosjektet får jeg denne feilen:

FEIL i src/app/panel/dashboard/dashboard.component.html:97:26 - feil TS2322: Type '"" | ApexNonAxisChartSeries | undefined' kan ikke tilordnes typen 'ApexAxisChartSeries | ApexNonAxisChartSeries'.
Typen 'undefined' kan ikke tilordnes typen 'ApexAxisChartSeries | ApexNonAxisChartSeries'.

97 <apx-chart [series]="pieChartOptionss?.series" [chart]="pieChartOptionss?.chart" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

src/app/panel/dashboard/dashboard.component.ts:93:16 93 templateUrl: './dashboard.component.html', ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Feilen oppstår i malen til komponenten DashboardComponent. src/app/panel/dashboard/dashboard.component.html:97:62 - feil TS2322: Type '"" | ApexChart | undefined' kan ikke tildeles typen 'ApexChart'. Type 'undefined' kan ikke tildeles typen 'ApexChart'.

97 <apx-chart [series]="pieChartOptionss?.series" [chart]="pieChartOptionss?.chart" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

src/app/panel/dashboard/dashboard.component.ts:93:16 93 templateUrl: './dashboard.component.html', ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Feil oppstår i malen til komponenten DashboardComponent. src/app/panel/dashboard/dashboard.component.html:98:53 - feil TS2322: Type '"" | ApexResponsive[] | undefined' kan ikke tildeles type 'ApexResponsive[]'. Type 'undefined' kan ikke tildeles type 'ApexResponsive[]'.

98 [labels]="pieChartOptionss?.labels" [responsive]="pieChartOptionss?.responsive" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

src/app/panel/dashboard/dashboard.component.ts:93:16 93 templateUrl: './dashboard.component.html', ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Feilen oppstår i malen til komponenten DashboardComponent. src/app/panel/dashboard/dashboard.component.html:99:17 - feil TS2322: Type '"" | ApexDataLabels | undefined' kan ikke tilordnes til type 'ApexDataLabels'. Type 'undefined' kan ikke tilordnes til type 'ApexDataLabels'.

99 [dataLabels]="pieChartOptionss?.dataLabels" [legend]="pieChartOptionss?.legend" class="apex-pie-center"> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

src/app/panel/dashboard/dashboard.component.ts:93:16 93 templateUrl: './dashboard.component.html', ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Feilen oppstår i malen til komponenten DashboardComponent. src/app/panel/dashboard/dashboard.component.html:99:61 - feil TS2322: Type '"" | ApexLegend | undefined' kan ikke tildeles typen 'ApexLegend'. Typen 'undefined' kan ikke tildeles typen 'ApexLegend'.

99 [dataLabels]="pieChartOptionss?.dataLabels" [legend]="pieChartOptionss?.legend" class="apex-pie-center"> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

src/app/panel/dashboard/dashboard.component.ts:93:16 93 templateUrl: './dashboard.component.html', ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Feil oppstår i malen til komponenten DashboardComponent. src/app/panel/dashboard/dashboard.component.html:106:46 - merror TS2532: Objekt kan muligens være 'undefined'.

106 {{pieChartOptionss?.series[0]}} ~~~~~~~~~~~~~~~~~~~~~~~~~~~

src/app/panel/dashboard/dashboard.component.ts:93:16 93 templateUrl: './dashboard.component.html', ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Feil oppstår i malen til komponenten DashboardComponent. src/app/panel/dashboard/dashboard.component.html:110:47 - feil TS2532: Objektet kan muligens være 'undefined'.

110 {{pieChartOptionss?.series[1]}}

Svar #1

Den eneste løsningen som fungerte for meg var å legge til ordet «any», som i koden nedenfor:

public pieChartOptionss!: Partial<pieChartOptionss> | any;

Svar #2

Løsningen for meg var å sette "!" på slutten av egenskapene i HTML. Slik:

<div id="chart">
<apx-chart [series]="chartOptions.series!" [chart]="chartOptions.chart!" [plotOptions]="chartOptions.plotOptions!"
    [labels]="chartOptions.labels!">
</apx-chart>
</div>

Relaterte artikler