-
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> , ... ]
|