如何获取 TypeScript 类的静态属性的类型?

Ant*_*ish 7 typescript

我有一个带有一些静态方法的辅助类:

export default class MyHelper {
    private constructor() {}
    private static privateMethod() {}
    public static publicHelperMethod() {}
}
Run Code Online (Sandbox Code Playgroud)

我有一个使用 publicHelperMethod 的 React 组件,我想确保这个特定方法在我的 props 声明中传递。

我尝试的方法是:

type LoggerMethod = MyHelper.publicHelperMethod;
Run Code Online (Sandbox Code Playgroud)

但这会引发错误,并表示 MyHelper 正被用作命名空间。

我可以使类本身成为一种类型:

type Helper = MyHelper;
Run Code Online (Sandbox Code Playgroud)

但我只对我的记录器方法(这个抽象中的公共助手)感兴趣。

是否可以将类的方法设为类型?如果是这样,其语法是什么?

或者,我的处理方式完全错误吗?

Ist*_*asz 7

如果你想使用方法的类型:

type LoggerMethod = typeof MyHelper.publicHelperMethod;
Run Code Online (Sandbox Code Playgroud)

如果要使用该方法的实现:

const loggerMethod = MyHelper.publicHelperMethod;
Run Code Online (Sandbox Code Playgroud)