Вывод класса Typescript - PullRequest
       86

Вывод класса Typescript

1 голос
/ 21 сентября 2019

Кто-нибудь знает, как получить текущий класс в abstract-generic-class |как ссылаться на текущий класс, как тип «CurrentClass», а не только абстрактный класс?

причина: я пишу небольшую библиотеку, которая должна «выводить» текущий класс, не делая «as CurrentClass»

abstract class Super {
  public static create(args: keyof CurrentClass) {}
}

class CurrentClass extends Super {}

// to prevent
CurrentClass.create({} as CurrentClass);

Я искал везде, но не мог найти ответ на этот вопрос, так возможно ли это даже в машинописи?


этот вопрос решил бы его, ноне для статических функций

Обновление: похоже, это - это проблема, которую я искал

1 Ответ

0 голосов
/ 21 сентября 2019

Обычный обходной путь заключается в добавлении параметра типа для вывода цели из вызова:

abstract class Super {
  s = ""
  public static create<T>(this:new (...a: any[]) => T, args: keyof T) {}
}

class CurrentClass extends Super {
  c = ""
}

// to prevent
CurrentClass.create("c"); // ok
CurrentClass.create("s"); // ok

play

...