シグニチャの読み方
- コア
- オプショナル
- ツール
シグニチャのセクションは次のような形式になっています:
vnode = m(selector, attributes, children)
引数 | 型 | 必須 | 説明 |
---|---|---|---|
selector |
String|Object |
Yes | CSSセレクター、もしくはコンポーネント |
attributes |
Object |
No | HTML属性、もしくは要素のプロパティ |
children |
Array<Vnode>|String|Number|Boolean |
No | 子供のvnode。フラットな引数として書くこともできます。 |
返り値 | Vnode |
vnode |
上記の表のシグニチャ行では、メソッドの一般的な文法を使い、メソッド名、引数の順序、推奨される返り値の名前を表示しています。
表の引数カラムではシグニチャのどの項目に対応するかを示しています。返り値
の行はメソッドの返り値の型を表示しています。
型カラムは引数の型を説明しています。
パイプ(|
)はリスト内のどの型であっても受け取れることを示しています。例えば、String|Object
という表現は、selector
には文字列、あるいはオブジェクトを指定できることを指名しています。
Array
の後の不等号のかっこ(< >
)は、期待する配列の要素の型を示しています。例えば、Array<String>
は引数の型が配列で、配列の要素はすべて文字列であることを示しています。Object
の後の不等号のかっこはマップを表しています。例えば、Object<String,Component>
は引数の型がオブジェクトで、キーが文字列で値がComponentであることを示しています。
ネイティブではない型は、特別なシグニチャを持つオブジェクトが必要なことを示しています。例えば、Vnode
は、仮想DOMノード構造を持つオブジェクトです。
必須カラムはその引数が必須かオプションかを表示します。もし引数がオプションであれば、null
かundefined
をセットするか、省略して次の引数をその場に書くことができます。
オプション引数
角かっこ([ ]
)で囲まれた引数はオプションです。次のサンプルでは、url
がオプション引数です:
m.request([url,] options)
可変長のフラット化可能な引数(Splats)
可変長でフラット化が可能な引数は配列で引数を渡すこともできるし、角かっこを省略して通常の引数としても渡すことができる引数です。
上記のサンプルはm("div", {id: "foo"}, ["a", "b", "c"])
という形態の説明になっていますが、m("div", {id: "foo"}, "a", "b", "c")
とも書くことができます。
この形式はCoffeeScriptのようなJavaScriptにコンパイルするトランスパイラでも便利ですが、省略記法として一般のケースでも便利です。
関数シグニチャ
関数はアロー形式(->
)で示します。矢の左側は入力引数の型を示していて、右側は返り値の型を示しています。
例えば、parseFloat
はString -> Number
となります。これは1つの文字列を引数として取り、返り値が数値になることを示しています。
複数の引数を持つ場合は、かっこを使います: (String, Array) -> Number
License: MIT. © Leo Horie.