2016-09-06 14 views
0

私はtypescriptが新しく、ストレージオブジェクトを作成したいと思っています。Typescript:オブジェクトを作成、保存、検索するのに最適な方法

オブジェクトは次のようになります。

workoutResults: array { 
    workoutResult { 
     dateOfWorkout: string 
     rounds: array { 
      sets:array { 
       repeats: number; 
       weight: number; 
       duration: number; 
      } 
     } 
    } 
} 

私は過去に、すべてのワークアウトの歴史を作成したいと、ユーザーが新しいワークアウトを開始したときに、最新のワークアウト結果を取得したいです。

interface WorkoutResult { 
    workoutDate: string; 
    workoutSet: WorkoutSet; 
} 

interface WorkoutSet { 
} 

export class WorkoutDoPage { 

    private workoutResults: Array<WorkoutResult>; 

    constructor(private nav: NavController, private navParams: NavParams, public exerciseData: ExerciseData) { 

     var testDate: any = new Date(); 

     this.workoutResults.push(testDate); 

     console.log(this.workoutResults); 

    } 

} 

エラーをスローします:プロパティを読み取ることができません未定義の「プッシュ」。私はただのインターフェイスで遊んでますが、何らかの理由でこのdoesntの仕事は、AT

たぶん、あなたは少し私を助けることができます:)

typescriptですで、このようなデータ構造をアーカイブするための最良の方法は何ですか?

+0

まだデフォルト値をインスタンス化する必要があると思いますか? –

答えて

2
あなたが宣言した後、またはコンストラクタであなたの配列を初期化する必要が

:あなたが何かに行くことができるサブアレイ用の

private workoutResults: Array<WorkoutResult> = []; 

または

constructor(private nav: NavController, private navParams: NavParams, public exerciseData: ExerciseData) { 

    var testDate: any = new Date(); 
    this.workoutResults = []; 
    this.workoutResults.push(testDate); 

    console.log(this.workoutResults); 

} 

interface WorkoutSet { 
    repeats: number; 
    weight: number; 
    duration: number; 
} 

interface WorkoutRounds { 
    rounds: WorkoutSet[]; 
} 

interface WorkoutResults { 
    dateOfWorkout: string; 
    rounds: WorkoutRounds[]; 
} 
workoutResults: WorkoutResults[] = []; 

そして、これらのデータを含む完全なオブジェクトをWorkoutResults配列にプッシュします。

+0

ああ、それは簡単だった。 Havntそれを見た。ありがとう。 workoutResults配列のセットとリピートの "サブアレイ"を作成する方法もありますか? – Fargho

+0

編集した回答を確認 – MatWaligora

+0

完璧、ありがとう! – Fargho

関連する問題