ts-interface-validator
v1.1.0
Published
TypeScript interface validator
Downloads
50
Readme
TypeScript Interface Validator
Intro
A library to validate whether a value is matched a typescript interface definition.
This is a lightweight and individual implementaion. So only support limited forms of definition.
For more detail you can see Supported and Not Supported below.
If you should have any question, please feel free to let me know.
Usage
import ValidatorManager from 'ts-interface-validator';
//Validate from type definition
let validator = ValidatorManager.instance.getValidator('{ a: string; b: number[]; c?: \'C1\' | \'C2\'}');
//Validate from definition in file
let validator2 = ValidatorManager.instance.getValidator('TypeName', 'xxx.ts');
//Validate
let result = validator.validate({ a: 'a', b: [2, 'b'] });
if (result.isSuccess) {
//succ
}
else {
console.log(result.message, result.originalError.message)
}
Supported pattern
- Basic type as
string
,number
,boolean
,Object
,any
- Array type as
T[]
orArray<T>
- Type alias as
type Abc = string
- Nested referenced interface, as
type Bcd = Abc
- Logical expression, such as
string | number
- String literal,as
'Value1' | 'Value2'
- Relative import
- Extend, as
interface Def extends Abc { ... }
- Index signature, as
{ [key: string]: number }
- Partial type, as
Partial<T>
- Ignore comments automatically
Not Supported pattern
- Mapped Types
- Circular reference