Some typescript decorators, like spring-validation and so on.
npm i @bpframework/validation
set config in tsconfig.json
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
import{NotNull,Type}from'@bpframework/validation';classBeanA{
@NotNull
@Type.Booleana: boolean=null;}// will throw a exception: // - febs.exception('message', febs.exception.PARAM, __filename, __line, __column);letobj=newBeanA();// will throw a exceptionobj.a=null;obj.a=undefined;!!!WARNING: The following code does not trigger a validity check
classBeanA{
@NotNulla: boolean;}// No exception is thrown.letobj=newBeanA();// Will throw a exception (trigger by settter)obj.a=null;All validate decorators have a corresponding array validation method
, e.g.@Max.Listuse to validator array
| 名称 | 作用 | 例子 |
|---|---|---|
@Null | must be null or undefined. | @Null({message: "must is null"}) |
@NotNull | cannot be null or undefined. | @NotNull({message: "cannot be null"}) |
@NotBlank | must contain a non-null char trim(str).length>0 | @NotBlank |
@NotEmpty | cannot be null or undefined, and the length is greater then 0 (o.size() > 0 或 o.length > 0) | @NotEmpty |
@Size({max:number, min:number}) | check the length of a string or array (o.size() 或 o.length) |
| 名称 | 作用 | 例子 |
|---|---|---|
@AssertFalse | must be false | @AssertFalse({message: "must be false"}) |
@AssertTrue | muse be true | @AssertTrue({message: "muse be true"}) |
| 名称 | 作用 | 例子 |
|---|---|---|
@DecimalMax({value:number ¦ string}) | Number value must be less than or equal to the specified value | @DecimalMax({value:1000, message: "error"}) |
@DecimalMin({value:number ¦ string}) | Number value must be greater than or equal to the specified value | @DecimalMin({value:0, message: "error"}) |
@Max({value:number ¦ string}) | Integer value must be less than or equal to the specified value. | @Max({value:1000, message: "error"}) |
@Min({value:number ¦ string}) | Integer value must be greater than or equal to the specified value. | @Min({value:1000, message: "error"}) |
| [unsupported] | unsupported | @Digits({integer:5, fraction:1}) |
@Negative | Number value must be negative | |
@NegativeOrZero | Number value must be negative or zero | |
@Positive | Number value must be positive | |
@PositiveOrZero | Number value must be positive or zero | |
@Range({min:number=0, max:number}) | check the range of number value |
| 名称 | 作用 | 例子 |
|---|---|---|
@Email({regexp:RegExp}) | Whether the specified value is Email. You can specify a regular | @Email({regexp:/.*/}) |
@Pattern({regexp:RegExp}) | Whether the specified value matches regular | @Pattern({regexp:/.*/}) |
| 名称 | 作用 | 例子 |
|---|---|---|
@Future | Date value is the future time | |
@FutureOrPresent | Date value is the future time or now | |
@Past | Date value is the past time | |
@PastOrPresent | Date value is the past time or now |
| 名称 | 作用 |
|---|---|
@Enum({allows: [v1, v2, v3, ...]}) | Verify the value is one of the allowed values. |
@Type.Enum({enumType: EnumName}) | Verify the value is enum type. |
@Type.Enum example:
import{Type}from'@bpframework/validation';enumEnum1{a='2323',b='xxxx'}classBeanA{
@Type.Enum({enumType: Enum1})a: any=null;}letobj=newBeanA();obj.a=Enum1.a;// ok.obj.a=Enum1.b;// ok.obj.a=1;// will throw a exception.| 名称 | 作用 |
|---|---|
@Type.Boolean | Verify that the value is a Boolean. |
@Type.Number | Verify that the value is a Number. |
@Type.Integer | Verify that the value is a Integer. |
@Type.BigInt | Verify that the value is a Big-Integer. |
@Type.String | Verify that the value is a String. |
@Type.Date | Verify that the value is a Date or Date-string. |
@Type.Object | Verify that the value is a Object. |
@Type.Array | Verify that the value is a Array. |
| 名称 | 作用 |
|---|---|
@Type.Validator | Custom validator. |
// validator value == 1
@Type.Validator({checkCB(value:any){if(value!==1)returnfalse;}})
value: number;