TypeScript 文字类型生成器
TypeScript literal type generator
我正在尝试创建一个可以 return 纠正输入的动作生成器。
所以我有以下代码:
const createAsyncActionWithTypes = (prefix: string, name: string) => [
`@${prefix}/${name}_REQUEST`,
`@${prefix}/${name}_SUCCESS`,
`@${prefix}/${name}_FAILURE`,
] as const;
const requestPersonActions = createAsyncActionWithTypes('person', 'GET_PERSON');
此函数使 requestPersonActions
成为以下类型:
const requestPersonActions: readonly [
`@${string}/${string}_REQUEST`,
`@${string}/${string}_SUCCESS`,
`@${string}/${string}_FAILURE`
]
我想要的是 createAsyncActionWithTypes
函数生成以下类型:
const requestPersonActions: readonly [
`@person/GET_PERSON_REQUEST`,
`@person/GET_PERSON_SUCCESS`,
`@person/GET_PERSON_FAILURE`
]
可能吗?
你必须使用generics
const createAsyncActionWithTypes = <T extends string, U extends string>(prefix: T, name: U) => [
`@${prefix}/${name}_REQUEST`,
`@${prefix}/${name}_SUCCESS`,
`@${prefix}/${name}_FAILURE`,
] as const;
const requestPersonActions = createAsyncActionWithTypes('person', 'GET_PERSON');
我正在尝试创建一个可以 return 纠正输入的动作生成器。 所以我有以下代码:
const createAsyncActionWithTypes = (prefix: string, name: string) => [
`@${prefix}/${name}_REQUEST`,
`@${prefix}/${name}_SUCCESS`,
`@${prefix}/${name}_FAILURE`,
] as const;
const requestPersonActions = createAsyncActionWithTypes('person', 'GET_PERSON');
此函数使 requestPersonActions
成为以下类型:
const requestPersonActions: readonly [
`@${string}/${string}_REQUEST`,
`@${string}/${string}_SUCCESS`,
`@${string}/${string}_FAILURE`
]
我想要的是 createAsyncActionWithTypes
函数生成以下类型:
const requestPersonActions: readonly [
`@person/GET_PERSON_REQUEST`,
`@person/GET_PERSON_SUCCESS`,
`@person/GET_PERSON_FAILURE`
]
可能吗?
你必须使用generics
const createAsyncActionWithTypes = <T extends string, U extends string>(prefix: T, name: U) => [
`@${prefix}/${name}_REQUEST`,
`@${prefix}/${name}_SUCCESS`,
`@${prefix}/${name}_FAILURE`,
] as const;
const requestPersonActions = createAsyncActionWithTypes('person', 'GET_PERSON');