我有这个对象:
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;
但我想知道是否有某种方法只使用对象中的字符串来做到这一点。
答案 0 :(得分:1)
但我想知道是否有某种方法只使用对象中的字符串来做到这一点。
不,没有。
相关主题有an open discussion:如何从TypeScript类型获取可在运行时使用的元数据。但到目前为止,TS团队并不想为此实施任何目标。