提问者:小点点

不能将扩展运算符与三值运算符一起使用


我试图用cross-spawn包中的spawn运行一个命令,以编程方式用npm安装一些依赖项,这些依赖项可以是rollup包,也可以是webpack包,具体取决于变量bundler的值

spawn.sync(
  'npm',
  [
    'add',
    '-D',
    'svelte',
    bundler === 'rollup' ? ...rollupPackages : ...webpackPackages
  ],
  { cwd: projectPath }
)

但typescript编译器正在抱怨,更具体地说是RollupPackages的扩展运算符,其中包含以下消息:

应为表达式。 ts(1109)


共1个答案

匿名用户

我假设两个包变量都是数组,并且您希望将各个数组值作为自己的值添加到.sync调用参数数组中,因此尝试将整个表达式括在括号中:

spawn.sync(
  'npm',
  [
    'add',
    '-D',
    'svelte',
    (bundler === 'rollup' ? ...rollupPackages : ...webpackPackages)
  ],
  { cwd: projectPath }
)