网站搜索

angular - ‘’是什么意思


嗨,我是 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} 它用反引号 (`) 包裹,而不是单引号 (')。为什么要用它?最后一个 HEROES.find(hero => hero.id === id) 中的 => 是什么意思?

我对此真的很陌生。所以,如果我的问题冒犯或触发你们,我非常抱歉..

谢谢你!

答案#1

方法 getHeroes() 返回一个 Hero 类型数组的 Observable。反引号(`)称为模板字符串。以前我们常写

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} 可用于绑定表达式。

=> 被称为胖箭头。

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

现在可以用这种方式用胖箭头来写

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

请查阅 ES6 的文档以获得更好的理解。模板字符串和箭头函数已在 ES6 中实现。

答案#2

Observable<Hero[]> 表示 getHeroes 方法返回一个 Observable,该 Observable 封装了类型为 Hero 的数据,其中 [] 表示一个数组;

`(反引号)在 JavaScript 中被称为 模板字符串

字面量中的表达式(其值在运行时进行求值并包含在字面量产生的最终值中)用前置美元符号 $和大括号 {} 括起来。