欲しかった機能が実装できたのでタグを切りました。 hagino3000/Struct.js https://github.com/hagino3000/Struct.js 主な機能追加 ネストした構造のサポート nullableオプションの追加 カスタムバリデーション関数のサポート 設定で全チェックを無効化する機能を追加 初期作成時の値チェックを追加 型チェックのためのコーディングをなるべく増やさないというポリシーです。素のObjectと同様に扱えるが必要なチェック機構は備えている物を目指しています。しかし副作用としてプロパティの有無でそれが何であるかを判定するダックタイピングは不可能になってしまった。よってそこだけは Struct.getType(obj) を使います。 リリース用の設定 Proxyオブジェクトを生成しないので、通常のプロパティアクセスのコストだけになる。 Struct.