TypeScript - проблема со свойством Get в инициализаторе объекта

angular typescript

359 просмотра

1 ответ

Я использую TypeScript с Angular2, ниже мое объявление класса -

export /**
 * Stress
 */
class Student {
    FirstName: string;
    LastName: string;

    constructor() {
    }

    get FullName() : string {
        return this.FirstName + this.LastName;
    }
}

Когда я пытаюсь инициализировать вышеуказанный класс, используя следующий код -

var stud1: Student = { FirstName:"John", LastName:"Troy" }

Я получаю следующую ошибку -

Type '{ FirstName: string; LastName: string; }' is not assignable to type 'Student'.
Property 'FullName' is missing in type '{ FirstName: string; LastName: string; }'.

Любая помощь, пожалуйста, что я делаю не так, или это еще не поддерживается TypeScript?

Автор: Raj Источник Размещён: 08.11.2019 11:26

Ответы (1)


2 плюса

Решение

Чтобы создать объект из вашего класса Student, вам нужно использовать конструктор класса.

var stud1 = new Student();
stud1.FirstName = "John";
stud1.LastName = "Troy";

console.log(stud1.FullName);

Или, что еще лучше, пусть конструктор инициализирует поля объекта:

class Student {
    FirstName: string; //this is public, unless you specify private
    LastName: string;

    constructor(firstName: string, lastName: string){
        this.FirstName = firstName;
        this.LastName = lastName;
    }

    //your FullName getter comes here
}

var stud1 = new Student("John", "Troy");
console.log(stud1.FullName);
Автор: Granga Размещён: 20.08.2016 02:50
Вопросы из категории :
32x32