Помните, что класс в машинописи - это и тип, и объект, который существует во время выполнения. Когда вы typeof
что-то делаете, вы спрашиваете тип доступного объекта во время выполнения. В этом случае ваш объект класса. Это дает вам доступ к его свойствам c.
Таким образом, вместо этого вы хотите:
type parameters = Parameters<X['fn']>
Детская площадка
Оставляя typeof
говорит ему взглянуть на тип X
, а не на объект, доступный во время выполнения класса X
. И запись ['prop']
- это то, как вы сверляете в поле типа.