Будучи новичком в angular 2, я запутался в этом операторе двоеточия :, например, почему и когда его следует использовать? Что означает hero:Hero утверждение в:

onSelect(hero: Hero): void {
    this.selectedHero = hero;
}

Спасибо.

-1
keshava shourie.b 27 Фев 2018 в 22:14

4 ответа

Лучший ответ

Во-первых, : относится к TypeScript, а не Angular 2.

Две точки используются (в данном случае) для указания типа параметра, передаваемого в функцию.

< Сильные > Примеры

Тип номера:

function add(x: number, y: number): number {
    return x + y;
}

Тип строки:

function buildName(firstName: string, lastName: string) {
return firstName + " " + lastName;
}

Тип события:

class Handler {
    onClickGood(this: void, e: Event) {
        console.log('clicked!');
    }
}

Тип класса:

class Animal {
    numLegs: number;
}

class Bee extends Animal {
    keeper: BeeKeeper;
}

function buildName(A: Animal, B: Bee) {
    //code....
}
1
Lyes CHIOUKH 27 Фев 2018 в 20:08

Здесь 'hero' - это переменная типа 'Hero'.

Это что-то похожее на

void onSelect(Hero hero){
       this.selectedHero = hero;
}

В Java selectedHero является переменной класса.

0
Anusha 27 Фев 2018 в 19:24

Двоеточие : - это то, что в TypeScript называется аннотацией типа.

Типовые аннотации могут использоваться для переменных, параметров функции и возвращаемых значений функции.

Переменная Демонстрация

let num: number = 1;
let str: string = 'foo';
let bool: boolean = false;

Параметры функции Демонстрация

public function doSomething( num: number, str: string, bool: boolean){
 /*some logic*/
}

Возвращаемое значение функции Демонстрация

public function doSomething(): void {
 //this function returns nothing
}

public function doSomethingElse(): boolean{
 // This function must return a boolean
 return true;
}
0
Narm 27 Фев 2018 в 22:39

Это похоже на попытку типизировать переменные. поэтому ваша переменная hero имеет тип Hero, и ваша функция ничего не возвращает, это ваша :void. То же самое с тем, что только для разработки, как я думаю, в любом случае во время выполнения остается только javasript.

0
Kraken 27 Фев 2018 в 19:24