在typescript中声明对象属性

时间:2017-07-20 19:29:23

标签: typescript

我想宣布&实例化一个对象类型的属性,如下所示:

export class HomePage {

  @ViewChild('acc') accCanvas;
  @ViewChild('gyro') gyroCanvas;

  charts: {
    accChart: any ,
    gyroChart: any ,
  }; // problem
  acc: any;  // latest accelerometer data
  gyro: any; // latest gyro data
  logState: string = 'Start'; // button state
  stateColor: string = 'primary'; // button color
  logs: any[] = []; // will hold history of acc + gyr data

acc,gyro等所有变量都运行良好,我可以在函数中将它们引用为this.xxxx。但是,我无法引用this.charts.accChartthis.charts.gyroChart - 它们返回未定义。任何人都可以建议如何声明和初始化图表对象属性?

1 个答案:

答案 0 :(得分:2)

charts: { accChart: any, gyroChart: any }只是一种类型声明。它描述了charts成员的形状。如果您想立即访问其子级,则需要对其进行初始化:

charts: {
  accChart: any,
  gyroChart: any
} = {
  accChart: void 0, // or choose an initial value other than undefined
  gyroChart: void 0 // or choose an initial value other than undefined
};

尽可能避免使用any类型。请改用TypeScript的类型,您自己的类型或库类型。