我正在尝试制作一个类型安全的映射函数(而不是下面的函数),但是我一直坚持获取要正确推断的函数参数。
export type Mapper<U extends Unmapped> = {
mapped: Mapped<U>
};
export type Unmapped = {
[name: string]: (...args: any[]) => any
};
export type Mapped<U extends Unmapped> = {
[N in keyof U]: (...args: any[]) => Promise<any>
};
const map = <U extends Unmapped>(unmapped: U): Mapper<U> => ({
mapped: Object.entries(unmapped).reduce(
(previous, [key, value]) => ({
...previous,
[key]: (...args: any[]) => new Promise((resolve) => resolve(value(...args)))
}),
{}
) as Mapped<U>
});
const mapped = map({ test: (test: number) => test …Run Code Online (Sandbox Code Playgroud) Composer无法在生产环境中安装symfony.一切都在开发中运作良好.所有权限都没问题.
PHP Fatal error: Uncaught Symfony\Component\Debug\Exception\ClassNotFoundException: Attempted to load class "SensioGeneratorBundle" from namespace "Sensio\Bundle\GeneratorBundle".
Did you forget a "use" statement for another namespace? in /home/ev/app/AppKernel.php:25
Stack trace:
#0 /home/ev/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php(396): AppKernel->registerBundles()
#1 /home/ev/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php(114): Symfony\Component\HttpKernel\Kernel->initializeBundles()
#2 /home/ev/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Application.php(68): Symfony\Component\HttpKernel\Kernel->boot()
#3 /home/ev/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php(118): Symfony\Bundle\FrameworkBundle\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#4 /home/ev/bin/console(27): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Inp in /home/ev/app/AppKernel.php on line 25
Run Code Online (Sandbox Code Playgroud)
这是AppKernel.php的第25行:
$bundles[] = new Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle();
Run Code Online (Sandbox Code Playgroud)
欢迎任何建议:)
首先,抱歉标题不好。我真的不知道如何描述这个问题,也许这就是我还没有找到解决方案的原因!
这是一个小片段,展示了我的问题:
type Type<T> = {
key: keyof T,
doStuff: (value: T[typeof key]) => void
// ^^^
// TS2034: Cannot find name 'key'.
};
Run Code Online (Sandbox Code Playgroud)
我想要做的事情非常简单(我希望)。我曾多次尝试解决这个问题,但每次参数最终都是所有可用类型的联合。
const Test: Type<{ var1: string, var2: number }> = {
key: 'var1',
doStuff: (value) => {}
// ^^^^^
// (parameter) value: string | number
};
Run Code Online (Sandbox Code Playgroud)
如果有人能帮助我解决这个问题,我将不胜感激。如果您需要有关我在这里尝试做的事情或我已经尝试过的事情的其他信息,请告诉我!