ほら、ウェブアプリケーションを作るときに使えそうじゃないですか。え?使わない?まあそう言わずに。
JSONのおさらい
JSONで有効な型は
- null
- 真偽値
- 数値
- 文字列
- 有効な型の配列
- オブジェクト(値は有効な型)
です。最初の4つはまあいいとして、問題は配列とオブジェクト。
再帰的に定義しなければダメですが、果たして。
ダメだった例
まずはこんなかんじで作ってみました。// JSON型 type json = null | boolean | number | string | jsonArray | jsonObject; type jsonArray = json[]; interface jsonObject { [key: string]: json; }TypeScriptのPlaygroundで試してみるとわかりますが、これだと
json
とjsonArray
が循環参照を起こしてしまいます。
うまくいった例
ここからいろいろ試行錯誤したんですが、過程はみんな興味ないと思うので、結果だけ紹介。// うまくいった例 type json = null | boolean | number | string | jsonArray | jsonObject; interface jsonArray extends Array<json> { } interface jsonObject { [key: string]: json; }Arrayを継承して今度はうまくいきました。
この型を使っていろいろなデータでテストしてみました。いいかんじ。
みなさんもお試しあれ。
0 件のコメント:
コメントを投稿