Typescript 从JS对象派生类型

Typescript 从JS对象派生类型,typescript,typescript-typings,typescript2.0,tsc,Typescript,Typescript Typings,Typescript2.0,Tsc,我有一个目标: export interface ClientOpts { key: string, listener: Function, host: string, port: number unlockRequestTimeout: number; lockRequestTimeout: number; unlockRetryMax: number; lockRetryMax: number; ttl: number } 我想知道是否有一种方法可以从这

我有一个目标:

export interface ClientOpts {
  key: string,
  listener: Function,
  host: string,
  port: number
  unlockRequestTimeout: number;
  lockRequestTimeout: number;
  unlockRetryMax: number;
  lockRetryMax: number;
  ttl: number
}
我想知道是否有一种方法可以从这样一个对象中导出上述内容:

export const validConstructorOptions = {
  key: 'string',
  listener: 'Function',
  host: 'string',
  port: 'number',
  unlockRequestTimeout: 'number',
  lockRequestTimeout: 'number',
  unlockRetryMax: 'number',
  lockRetryMax: 'number'
};
一种方法是这样做:

   export const validConstructorOptions = {
      key: 'string',
      listener: ()=>{},
      host: 'string',
      port: 999,
      unlockRequestTimeout: 999,
      lockRequestTimeout: 999,
      unlockRetryMax: 999,
      lockRetryMax: 999
    };
然后呢

export type ClientOpts = typeof validConstructorOptions;
但我想知道是否有某种方法可以仅使用对象中的字符串来实现这一点

但我想知道是否有某种方法可以仅使用对象中的字符串来实现这一点

不,没有

还有一个相关的主题:如何从TypeScript类型获取可在运行时使用的元数据。但到目前为止,TS团队不想为此实施任何措施。

与?