interface Teacher {
name: string;
age: number;
sex: 'male' | 'female'
}
var teacher: Teacher = {
name: 'Yang',
age: 30,
sex: 'male',
}
function getInfo<T extends keyof Teacher>(teacher: Teacher, key: T) {
return teacher[key];
}
getInfo(teacher, 'age')
getInfo(teacher, 'ddd') // Argument of type '"ddd"' is not assignable to parameter of type 'keyof Teacher'.