В моем базовом классе Base у меня есть это:
class Base {
static createFromData(data: any) {
if (data.type == 'derived1')
return new Derived1(data)
// ... others
}
}
class Derived1 extends Base {
constructor(data: any) {
// ... stuff
}
}
, поэтому createFromData
- заводской метод. Но это срабатывает правило eslint @typescript-eslint/no-use-before-define
. Это кажется совершенно нормальным вариантом использования, так как же с этим справиться обычно? Очевидно, я не могу переместить определение Derived1
над его базой, и я не думаю, что в Typescript есть форвардные объявления, такие как C ++. Должен ли я просто отключить правило для классов глобально или в этом случае?