Как разбить класс на несколько файлов как в C#?

Рейтинг: 0Ответов: 1Опубликовано: 14.02.2023

Как можно разбить класс на несколько файлов? Чтобы часть методов класса была в одном файле и часть в другом?

Файл entity.ts

/// <reference path="settings.ts" />

namespace Game{
    export class Entity{
        private _size: Object;
        private _pos: Object;
        
        public name: string;

        constructor(name: string, x: number, y: number){
            this._size = {width: 15, height: 15};
            this._pos = {x: x, y: y};

            this.name = name;
        }

        public get pos(){
            return this._pos;
        }
    } 
}

Файл settings.ts

/// <reference path="entity.ts" />

namespace Game{
    export class Entity{
        settings(){
            return 'Settings for ' + this.name;
        }
    }
}

Ответы

▲ 0

Grundy уже написал :)

Да, разбить класс на несколько файлов можно, но без насущеной необходимости лучше этого конечно не делать.

Тенология называется typescript augmentation документация

Вот прекрасная статья на эту тему: статья

Если кратко - то во втором файле пишите

declare module "./pet" {
  interface Pet {
    age: number;
    walk(location: string);
  }

  Pet.prototype.walk = (location:string) => `Likes to walk in the ${location}`
}

Как видите - смотрится не очень и лучше без необходимости так не делать.

Но! данные метод весьма полезен когда Вы используете некую библиотеку и Вам надо расширить ее функциональность.

P.S. такой синтаксис сейчас считается устаревшим и лучше его не использовать

/// <reference path="settings.ts" />