},
validate<K extends keyof D & string>(key: K, value: unknown): value is SchemaValue<D[K]> {
return prop ? prop.validate(value) : false;
},
assertValid<K extends keyof D & string>(key: K, value: unknown): asserts value is SchemaValue<D[K]> {
const prop: ISchemaProperty<unknown> | undefined = definition[key];