라이브러리 없이 간단한 타이프스크립트 데이터 유효성 검사
6610 단어 validationtypescript
import {validate} from './validate'
const validGetUserArgs = Object.freeze({
authToken: '',
pubkey: new PublicKey()
atTime: new Date()
})
type GetUserArgs = typeof validGetUserArgs
function getUser(args: GetUserArgs) {
validate(args, validGetUserArgs)
checkToken(args.authToken)
db.get({pubkey: args.pubkey, at: args.atTime})
}
다음은 해당
validate
함수에 대한 한 가지 정의입니다.function validate<T>(obj: T, valid: T) {
for (const k in valid) if (!(k in obj)) throw Error(`missing key ${k}`)
for (const k in obj) if (!(k in valid)) throw Error(`unknown key ${k}`)
for (const k in obj) {
const got = typeof obj[k]
const wanted = typeof valid[k]
if (got !== wanted) {
throw Error(`argument ${k} had type ${got} instead of ${wanted}`)
}
}
}
데모typescript playground
이것은 제한적입니다. 유니온, 옵셔널, 네스팅, 클래스가 아닌 인터페이스 등으로 인해 골칫거리가 될 것입니다.
Reference
이 문제에 관하여(라이브러리 없이 간단한 타이프스크립트 데이터 유효성 검사), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/qpwo/simple-typescript-data-validation-without-libraries-3h8p텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)