TypeScriptで入れ子Jsonの型を定義する

3932 ワード

こんな形式のJsonを想定する

{
    "A": {
        "A-0": {
	    x: 10,
	    y: 20
	},
	"A-1": {
	    x: 12,
	    y: 11
	},
	// ...(何個あるかわからない)
    },
    // ...(何個あるかわからない)
}

interfaceによって定義する
入れ子のJsonは複数Iterfaceを定義することで解消できる。
要素の数が未定またどんなキーが入ってくるかわからない場合は以下のように型を定義できる

[key: string]: number

以上より型定義はこのようになる

  interface Alphabet{
    [key: string]: AlphabetPre
  }

  interface AlphabetPre {
    [key: string]: Position
  }

  interface Position {
    x: number;
    y: number;
  }

型付きでJsonを読み込むにはrequireを使う

const json_data: Alphabet = require("JSON_PATH");

参考