Angular2中的类和属性使用

时间:2017-03-08 11:59:18

标签: angular

我正在https://angular.io/学习Angular2。在学习本教程后,我最终编写了以下代码

import { Component } from '@angular/core';

@Component({
 selector: 'app-root',
 templateUrl: './app.component.html',
 styleUrls: ['./app.component.css']
})
export class AppComponent {
 title = 'Tour of Heroes';
 hero: Hero = {
   id: 1,
   name: 'windstorm'
 };
}

export class Hero {
 id: number;
 name: string;
}

这里我的问题是在类Hero和AppComponent类中的对象英雄“:”用于声明并将值赋给属性,但为什么“=”用于赋值属性的值。

由于

6 个答案:

答案 0 :(得分:1)

语句hero: Hero是一个Typescript表达式,它允许Typescript知道属性hero将使用Hero Typescript接口。

然后使用=将实际的vaue分配给该属性。

title遗漏的原因是你传递的是一个简单的字符串,而Typescript推断title变量的类型必须是string。因此,您不必专门定义title的类型。

答案 1 :(得分:1)

id: number;声明属性ID,类型号码。

title = 'Tour of Heroes';声明属性标题,并使用'英雄之旅'初始化它。它的类型string由TypeScript编译器推断。但它实际上相当于

title: string = 'Tour of Heroes';

这是一些基本的TypeScript语法。 Learn the language

答案 2 :(得分:1)

那是因为在标题中你要分配一个值。这是简单的javascript:

title = 'Tour of Heroes';

虽然英雄,你说的是,你的英雄属性的类型为Hero,你也正在为它分配一个新值,即打字稿:

hero: Hero = {
   id: 1,
   name: 'windstorm'
 };

所以你可以做一些与你的头衔类似的事情,虽然它是多余的:

 title:string = 'Tour of Heroes';

为什么它是多余的?因为title是一个基本类型,当你为它指定一个字符串时,typescript已经知道你的标题变量是一个字符串类型;

答案 3 :(得分:1)

在javascript中

等号 = 用于分配变量:

let title = 'Hello';

冒号(在本例中)用于将与其{em>值分开{{1} }:

javascript object

上面示例中的第一个冒号是 typescript 表示法,用于为hero变量指定 type

答案 4 :(得分:1)

title = 'Tour of Heroes';

在此,您说的是title类的属性AppComponent具有此值'Tour of Heroes'
您可以这样指定:

title: string = 'Tour of Heroes';

但是,通过指定类型为string的值,TypeScript了解title已经是string类型,而无需指定它。

相反,在这里:

  hero: Hero = {
   id: 1,
   name: 'windstorm'
 };

您说类hero的属性AppComponentHero类型并具有此值:

{id: 1, name: 'windstorm'}

因此,使用,您可以声明属性的类型。使用 = ,您可以分配它的值。

答案 5 :(得分:0)

hero: Hero = {
   id: 1,
   name: 'windstorm'
 };

在这种情况下,Hero是英雄级别。然后(使用" ="),您将JS对象{ id: 1, name: 'windstorm'};分配给hero变量。

title = 'Tour of Heroes';

您只需将值分配给变量,而无需说明其类型。

title : string = 'Tour of Heroes';

甚至

title : any = 'Tour of Heroes';