TypeScript 泛型中 keyof 語法的使用


interface Person{
  name: string;
  age: number;
  gender: string;
}

class Teacher{
  constructor(private info: Person) { }
  // getInfo(key: string) {
  //   return this.info[key];
    /**
     * 這里報錯是因為,不能保證這個 key 值就一定是 info 里面的 key
     * 比如隨表傳遞 hello ,就會打印出 undefined
     * 所以需要保護機制,結合泛型 的 keyof
     */
  // }

  getInfo<T extends keyof Person>(key: T):Person[T] {
    return this.info[key];
  }
}

const teacher = new Teacher({
  name: 'sssssss',
  age: 18,
  gender: 'male'
})

const test = teacher.getInfo('age');
console.log(test);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM