-
Notifications
You must be signed in to change notification settings - Fork 8
Validate
uupaa edited this page Feb 25, 2016
·
19 revisions
WebModule には、Valid.js 由来のバリデート関数
$valid
,
$type
,
$keys
,
$values
,
$some
,
$args
が組み込まれています。
これらは lib/WebModule.js で定義されており、関数の実体は test/wmtools.js に定義されています。
$type
で使用可能な型 も参照してください。
// --- validate and assert functions -----------------------
//{@dev https://github.com/uupaa/WebModule/wiki/Validate
GLOBAL.$type = function(v, types) { return GLOBAL.Valid ? GLOBAL.Valid.type(v, types) : true; };
GLOBAL.$keys = function(o, keys) { return GLOBAL.Valid ? GLOBAL.Valid.keys(o, keys) : true; };
GLOBAL.$some = function(v, cd, ig) { return GLOBAL.Valid ? GLOBAL.Valid.some(v, cd, ig) : true; };
GLOBAL.$args = function(api, args) { return GLOBAL.Valid ? GLOBAL.Valid.args(api, args) : true; };
GLOBAL.$valid = function(v, api, hl) { return GLOBAL.Valid ? GLOBAL.Valid(v, api, hl) : true; };
GLOBAL.$values = function(o, vals) { return GLOBAL.Valid ? GLOBAL.Valid.values(o, vals) : true; };
//}@dev
関数が引数で複数の型を受け取る場合に、その引数の型は UnionType になります。
UnionType は |
で連結して表現します。
function huga(arg) { // @arg Number|String
}
関数が引数であらゆる型を受け取る場合に、その引数の型は Any になります。
function moga(arg) { // @arg Any
}
WebModule では、Attribute(@...
)を使い、関数の機能と役割をマークアップすることができます。
function Foo(id, // @arg Number|String = "" - object id.
callback, // @arg Function - callback(id:String):void
options) { // @arg Object = null - { key, value }
}
- 引数
-
@arg Type1
- 型を指定します -
@arg Type1|Type2
- 型を|
で連結し複数指定することもできます -
@arg Type1|Type2 = defaultValue
- デフォルト値を指定することもできます -
@arg Type1|Type2 = defaultValue - comment
--
を追加することでコメントを記述できます @arg String|Boolean = false - options.verbose
-
- 可変長引数
-
@var_args Type1
- 型を指定します -
@var_args Type1|Type2
- 型を|
で連結し複数指定することもできます -
@var_args Type1|Type2 - comment
--
を追加することでコメントを記述できます @var_args Node - HTML nodes
-
- 戻り値
-
@ret Type1
- 型を指定します -
@ret Type1|Type2
- 型を|
で連結し複数指定することもできます -
@ret Type1|Type2 - comment
--
を追加することでコメントを記述できます @ret Uint8Array - UTF8 array. [u8, ...]
-
- 概要
-
@desc comment
- description を 1行で記述します @desc convert string to Base64String.
-
- 例外
-
@throw Type("message")
- 関数が発生させる可能性のある例外とメッセージを記述します @throw TypeError("invalid args")
-
- 廃止予定
-
@deprecated comment
- 廃止予定なことをコメント付きで表明します @deprecated version 0.3 and later
-
- その他
-
@...
- その他の属性も利用可能です -
@... comment
- コメントも付与できます @see this function spec https://.../wiki/
-
@arg
の 例:
- `@arg String`
- `@arg String = ""`
- `@arg Number|Integer = 0`
- `@arg Number|Integer = 0 - value`
- `@arg URLStringArray = [] - [URLString, ...]`
@arg ...
や $type("...")
には String
や Number
などの基本的な型名の他に、URLString
や NumberArray
などのように修飾された型名とユーザが独自に定義した形名が使用できます。
このような型はデコレーションされた型(DecoratedType)と呼びます。
DecoratedType は、String などの基本型よりも、詳細度が高くなるため、WebModule の多くの場所で使用されています。
型の性質 | Basic Type |
DecoratedType |
---|---|---|
URL文字列 | String | @arg URLString - "url" |
絶対URLの文字列 | String | @arg AbsoluteURLString - "http://..." |
絶対URLの文字列 の配列 |
String | @arg AbsoluteURLStringArray - ["http://...", ...] |
数値の配列 | Array | @arg NumberArray - [number, ...] |
StringのKeyと NumberのValueを ペアにした配列 |
Array |
@arg StringKeyAndNumberValuePairArray - [ <key:String, value:Number> , ... ]
|