ค้นหาเว็บไซต์

angular - '<Hero[]>' หมายความว่าอะไร


สวัสดี ผม/ดิฉันเป็นมือใหม่ใน angular และ typescript และกำลังพยายามเรียนรู้บทเรียนจาก Angular และผม/ดิฉันพบสิ่งที่ไม่เข้าใจว่ามันหมายถึงอะไร เช่น:

1.

getHeroes(): Observable<Hero[]> {
    this.messageService.add('HeroService: fetched heroes');
    console.log(this.http);
    return this.http.get<Hero[]>(this.heroesUrl);
}

ในตัวอย่างข้างต้น ผมต้องการรู้ว่า <Hero[]> หมายถึงอะไรใน Observable<Hero[]> และ this.http.get<Hero[]>(this.heroesUrl)

2.

getHero(id: number): Observable<Hero> {
    this.messageService.add(`HeroService: fetched hero id=${id}`);
    return of(HEROES.find(hero => hero.id === id));
}

ตรวจสอบอย่างละเอียดที่ HeroService: fetched hero id=$ {id} มันถูกห่อด้วย backticks (`) ไม่ใช่ single quote (') ทำไมถึงใช้แบบนั้น? และอันสุดท้าย HEROES.find(hero => hero.id === id) => หมายถึงอะไร?

ฉันยังใหม่กับเรื่องนี้มากเลย ดังนั้นฉันต้องขอโทษจริง ๆ ถ้าคำถามของฉันทำให้พวกคุณรู้สึกไม่พอใจหรือกระทบจิตใจ

ขอบคุณ!

คำตอบ #1

เมธอด getHeroes() ส่งกลับ Observable ของประเภทอาร์เรย์ของ Hero และ Backtick (`) เรียกว่า template literal ก่อนหน้านี้เราเคยเขียน

let a = 10
b = 5 ;
console.log("value of a is" + a + " and the value of b is " + b);

ด้วยเทมเพลตลิเทอรัล เราสามารถเขียน

console.log(`value of a is ${a} and value of b is ${b}`)

สามารถใช้ $ {expression} เพื่อผูกกับนิพจน์

=> เรียกว่า fat arrow

let example = function(str){
  console.log(str)
}

ตอนนี้สามารถเขียนโดยใช้ลูกศรหนาในลักษณะนี้ได้

let example = (str) =>{
  console.log(str)
}

กรุณาอ่านเอกสารของ ES6 เพื่อความเข้าใจที่ดียิ่งขึ้น เครื่องหมายวลีแม่แบบและลูกศรหนาถูกใช้งานใน ES6

คำตอบ #2

Observable<Hero[]> หมายถึงว่าเมธอด getHeroes จะส่งกลับ Observable ซึ่งห่อหุ้มข้อมูลประเภท Hero Hero โดยที่ [] แสดงถึงอาเรย์;

` (backtick) เป็นที่รู้จักในชื่อ template literal ในจาวาสคริปต์

นิพจน์ภายในตัวอักษรลิเทอรัล (ค่าของมันจะถูกประเมินในเวลารันไทม์และรวมอยู่ในค่าที่ผลิตโดยลิเทอรัล) จะถูกครอบด้วยวงเล็บปีกกา {} โดยมีเครื่องหมายดอลลาร์ $นำหน้า