打字稿:从动态创建的对象推断确切值

时间:2019-03-20 13:34:06

标签: javascript typescript

是否有一种方法可以从使用辅助函数动态创建的对象中推断出确切的值。

该对象的值将始终被推断为字符串类型,但是我想拥有它们的确切值,就像我尝试投射在SIGN_IN声明上一样。

const createAsyncActionTypes = (label: string) => ({
  REQUEST: `${label}_${'SUCCESS'}`,
  SUCCESS: `${label}_${'SUCCESS'}`,
  ERROR: `${label}_${'ERROR'}`,
  CANCELLED: `${label}_${'CANCELLED'}`,
});

const SIGN_OUT = createAsyncActionTypes('SIGN_OUT');

const SIGN_IN: {
  REQUEST: 'SIGN_IN_REQUEST';
  SUCCESS: 'SIGN_IN_SUCCESS';
  ERROR: 'SIGN_IN_ERROR';
  CANCELLED: 'SIGN_IN_CANCELLED';
} = createAsyncActionTypes('SIGN_IN');

1 个答案:

答案 0 :(得分:0)

不,那不可能。

您可以将各个值转换为它们的相关类型,但这会破坏动态创建对象的目的:

enter image description here

Typescript不支持这样的“动态键入”。