Когда использовать свойство get и встроенную функцию для свойств TypeScript - PullRequest
1 голос
/ 07 марта 2019

У меня есть простой класс компонентов следующим образом:

import { Component } from '@angular/core';
    import { ControlService } from '../services/control-service';

    @Component({
      templateUrl: './control-bar.component.html',
      styleUrls: ['./control-bar.component.less']
    })
    export class ControlBarComponent {
        get context(): any { return this.controls.context; }
        constructor(private controls: ControlService) { }
        is(contextName) {
            return this.context.constructor.name == contextName;
        }
    }

Проблема возникает, когда я пытаюсь написать модульный тест для данного кода. Я получаю следующую ошибку:

TypeError: Невозможно прочитать свойство 'constructor' из неопределенного в ControlBarComponent ../ SRC / приложение / курсы / контроль - bar.component.ts.ControlBarComponent.is (http://localhost:9876/ _karma_webpack_ / WebPack: /src/app/courses/control-bar.component.ts: 12: 33) в Object.eval [как updateDirectives] (Нг: ///DynamicTestModule/ControlBarComponent.ngfactory.js: 111: 25)

После игры с тодом и попытки найти ответ я пробую следующий код, который больше не выдает ошибку.

// Same except for the following line 
context = () => this.controls.context;
// replaces 
get context(): any { return this.controls.context; }   

Так есть ли недостатки этого решения? И если да, когда я должен использовать эти две конструкции кода?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...