ほら、ウェブアプリケーションを作るときに使えそうじゃないですか。え?使わない?まあそう言わずに。
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 件のコメント:
コメントを投稿