このツールの動作
JSON の標本が TypeScript の型になります。オブジェクト一つにつき、名前付きの型が一つです。
{ "id": 1, "name": "Ada", "address": { "city": "Paris" } }
export interface Root {
id: number;
name: string;
address: Address;
}
export interface Address {
city: string;
}
interface か type か、export を付けるか、根の名前をどうするかは、いずれも設定できます。
根の一覧に名前がついた
オブジェクトの配列は、最もよくある標本です。一覧を返す口が返すのがそれだからです。以前の出力は要素の型だけでした。
export interface UsersItem {
id: number;
}
指定した根の名前はどこにも現れませんでした。今は一覧そのものに名前がつきます。
export type Users = UsersItem[];
export interface UsersItem {
id: number;
}
これは欠陥でした。この文章を書く過程で見つけ、直しました。この場所の Zod と io-ts の生成器は以前から根を出していました。TypeScript は出していませんでした。
同じ名前、違う形
型の名前は鍵に由来するので、別々の枝がどちらも Address を求めることがあります。形が違うとき、二つ目は Address2 になります。混ぜれば、どちらにも合わない型ができるからです。形が同じときは定義を一つ共有します。二度参照される一つの Address です。
標本ひとつでは言えないこと
省略可能の印はどこにも付きません。これは意図したことです。一度見えた鍵は、現れうることを示すだけで、いつも現れることは示しません。"nickname": null は nickname: null になります。標本が持つのはそれだけだからです。分かった時点で、ご自身で string | null に広げてください。
二十桁の識別子は number と型付けされますが、JavaScript の数値はそれを保持できません。2^53 を超えると、解析の時点で値が変わります。型は標本について嘘をついているのではなく、言語の限界を引き継いでいます。その項目が雪片式の識別子なら、string にして JSON.parse から遠ざけてください。
重複した鍵は拒む
{"a": 1, "a": "x"} は以前 a: string を返していました。最後の出現が黙って勝っていたのです。値が二つ、鍵は一つ、その項目がどの型なのかを言う手立てはありません。変換は今は止まり、この文書は曖昧だと告げます。同じ文書に対して、ここの JSON 検証器がすでに返していた答えと同じです。
プライバシー
すべての処理はブラウザ内のJavaScriptだけで完結します。データがアップロードされることはないため、機密情報でも安心して利用でき、オフラインでも動作します。