Как разбить класс на несколько файлов как в C#?
Как можно разбить класс на несколько файлов? Чтобы часть методов класса была в одном файле и часть в другом?
Файл 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;
}
}
}
Ответы (1 шт):
Автор решения: Gayrat Vlasov
→ Ссылка
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" />