Javascript 使用TypeScript扩展breeze实体

Javascript 使用TypeScript扩展breeze实体,javascript,typescript,breeze,hottowel,Javascript,Typescript,Breeze,Hottowel,我正在开发一个网站使用热毛巾和打字脚本。在John Papa出色的PluralSight课程中,他通过创建构造函数并使用“Object.defineProperty”对breezejs实体进行了扩展。例如,他添加了一个名为fullName的属性,如下所示 注意:元数据存储是breezejs元数据存储 function registerPerson(metadataStore) { metadataStore.registerEntityTypeCtor('Person', Per

我正在开发一个网站使用热毛巾和打字脚本。在John Papa出色的PluralSight课程中,他通过创建构造函数并使用“Object.defineProperty”对breezejs实体进行了扩展。例如,他添加了一个名为
fullName
的属性,如下所示

注意:元数据存储是breezejs元数据存储

function registerPerson(metadataStore) {
        metadataStore.registerEntityTypeCtor('Person', Person);

        function Person() {
            this.isPartial = false;
            this.isSpeaker = false;
        }

        Object.defineProperty(Person.prototype, 'fullName', {
            get: function () {
                var fn = this.firstName;
                var ln = this.lastName;
                return ln ? fn + ' ' + ln : fn;
            }
        });
    }

我的问题是如何使用TypeScript实现同样的功能?

TypeScript支持现成的访问器。您询问的TypeScript代码可能是:

function registerPerson(metadataStore) {
    metadataStore.registerEntityTypeCtor('Person', Person);
}
class Person {
    public firstName: string;
    public lastName: string;

    constructor(public isPartial=false, public isSpeaker=false) {
    }

    get fullName():string {
        return `${this.firstName} ${this.lastName}`;
    }
}