Typescript中的泛型会导致意外错误

Typescript中的泛型会导致意外错误,typescript,typescript-generics,Typescript,Typescript Generics,以下代码: export type Mixin<T extends any, Y extends string> = { [P in keyof T & string as `${Y}_${P}`]: T[P] }; 有人知道原因是什么吗?似乎找不到解决方案,解决方案是动态定义属性(意味着定义JS代码),另外,我必须手动定义TS属性,使用我想要“动态”定义的实际函数类型,所以这是一个动态静态解决方案,但我只找到了这些。 代码可以在这里找到:TS确实会发疯,但我无法识别这部分

以下代码:

export type Mixin<T extends any, Y extends string> = { [P in keyof T & string as `${Y}_${P}`]: T[P] };

有人知道原因是什么吗?似乎找不到解决方案,解决方案是动态定义属性(意味着定义JS代码),另外,我必须手动定义TS属性,使用我想要“动态”定义的实际函数类型,所以这是一个动态静态解决方案,但我只找到了这些。
代码可以在这里找到:

TS确实会发疯,但我无法识别这部分是有效的:
${Y}{p}
你能解释更多吗?什么是编译类型?通常,类型不存在于已编译的typescript中。另外,这两种类型的语法在playway@LuisFilipe中都能很好地工作,那么也许你可以帮助我更正确地完成我想要的事情。我有一个包含函数的类型,我想将它们作为文本从P重命名为Y_P。这个东西工作得很好,但是当作为一个模块(正在编译)使用时,它就发疯了。@AlexWayne它对我来说工作得很好,但是当编译并在TestCafe for i.e.(自动化框架)中使用时,它抛出了这个错误,因为它不能正确地使用它。更多信息,请参考我对路易斯的评论。
export declare type Mixin<T extends any, Y extends string> = {
    [P in keyof T & string as `${Y}_${P}`]: T[P];
};
D:/Projects/testcafe-playground/node_modules/redis-modules-sdk/lib/modules/redis.d.ts (46, 28): ']' expected.
D:/Projects/testcafe-playground/node_modules/redis-modules-sdk/lib/modules/redis.d.ts (46, 42): ';' expected.
D:/Projects/testcafe-playground/node_modules/redis-modules-sdk/lib/modules/redis.d.ts (46, 43): Declaration or statement expected.
D:/Projects/testcafe-playground/node_modules/redis-modules-sdk/lib/modules/redis.d.ts (47, 1): Declaration or statement expected.