TypeScript/tests/cases/compiler/inferentialTypingUsingApparentType3.ts
2015-07-02 15:21:43 -07:00

26 lines
No EOL
486 B
TypeScript

interface Field<T> {
clean(input: T): T
}
class CharField implements Field<string> {
clean(input: string) {
return "Yup";
}
}
class NumberField implements Field<number> {
clean(input: number) {
return 123;
}
}
class ObjectField<A, T extends { [name: string]: Field<any> }> {
constructor(public fields: T) { }
}
var person = new ObjectField({
id: new NumberField(),
name: new CharField()
});
person.fields.id;