Есть ли способ получить типы параметров из нестати c метод? - PullRequest
1 голос
/ 23 апреля 2020

Можно получить типы параметров в виде кортежа static method, используя Parameteters<>:

class X {
    static fnStatic(a: number, b: string, d: Date) {}
}

type parameters = Parameters<typeof X.fnStatic>

, но есть ли способ сделать это с помощью non-static method?

class X {
    fn(a: number, b: string, d: Date) {}
}

type parameters = Parameters<typeof X.fn> // error

1 Ответ

2 голосов
/ 23 апреля 2020

Помните, что класс в машинописи - это и тип, и объект, который существует во время выполнения. Когда вы typeof что-то делаете, вы спрашиваете тип доступного объекта во время выполнения. В этом случае ваш объект класса. Это дает вам доступ к его свойствам c.

Таким образом, вместо этого вы хотите:

type parameters = Parameters<X['fn']>

Детская площадка

Оставляя typeof говорит ему взглянуть на тип X, а не на объект, доступный во время выполнения класса X. И запись ['prop'] - это то, как вы сверляете в поле типа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...