https://github.com/elbow-jason/izz-ts
An easy-to-use TypeScript type guard utility library.
https://github.com/elbow-jason/izz-ts
io typeguard types typescript validation
Last synced: over 1 year ago
JSON representation
An easy-to-use TypeScript type guard utility library.
- Host: GitHub
- URL: https://github.com/elbow-jason/izz-ts
- Owner: elbow-jason
- Created: 2017-06-16T04:13:47.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2017-06-22T00:58:55.000Z (almost 9 years ago)
- Last Synced: 2025-02-25T15:06:35.430Z (over 1 year ago)
- Topics: io, typeguard, types, typescript, validation
- Language: TypeScript
- Size: 289 KB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
[](https://travis-ci.org/elbow-jason/izz-ts)
# izz-ts
A TypeScript Guard Type Checker
## Install
`npm install --save izz-ts`
## Example
### Code
```typescript
import * as izz from 'izz-ts'
export class Sale {
key: string = ''
completing_party_name: string = ''
completing_party_address: string = ''
completing_party_phone: string = ''
down_payment: (null | number) = null
sale_price: (null | number) = null
static paramsValidator = izz.object({
key: izz.string,
completing_party_name: izz.string,
completing_party_address: izz.string,
completing_party_phone: izz.string,
sale_price: izz.number,
down_payment: izz.number,
})
static isValidJSON(data: any): data is Sale {
return Sale.paramsValidator.isValid(data)
}
static fromJSON(data: any): (Sale | never) {
if (Sale.isValidJSON(data)) {
return new Sale(data)
} else {
let val = new izz.DataValidator('SaleJSON', Sale.paramsValidator, data)
console.groupCollapsed('Invalid Sale JSON')
console.log('data', data)
console.log('errors', val.errors)
console.groupEnd()
throw new Error(`Invalid Sale JSON`)
}
}
constructor(params: (Sale | null) = null) {
if (params) {
this.key = params.key
this.completing_party_name = params.completing_party_name
this.completing_party_address = params.completing_party_address
this.completing_party_phone = params.completing_party_phone
this.sale_price = params.sale_price
this.down_payment = params.down_payment
}
}
}
```
### Logged Invalid Data
