このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(http://d.hatena.ne.jp/m-hiyama-memo/)のデータを移行・保存したものであり、今後(2019年1月以降)更新の予定はありません。

今後の更新は、新しいブログ http://m-hiyama-memo.hatenablog.com/ で行います。

拡張ポイントの作り方


module public
provides [person]; // personは公開型名となる

type person = @person
object {
"name" : string,
"age" : integer(minimum=0),
* : any
}
& // インターセクション演算子
personExt // 拡張ポイント
;

// 拡張ポイントの実体を外部参照にする
type personExt = @person user.Ext:personExtObj;


module user.Ext
provides [personExtObj]; // user.Ext:personExtObjを提供

// 拡張部分をオブジェクトとして書く
type personExtObj = object {
"mailAddress" : @mail string,
* : any
};