首页 > 解决方案 > Typescript中命名元组的通用名称是什么?

问题描述

我写了这段代码:

type SomeOptions = {
  a: string;
};

type SomeMethod<T extends any[]> = (
  ...args: [...T, otherOptions: SomeOptions]
) => void;

但是 TypeScript 检查器会抛出错误:“元组成员必须都具有名称或都没有名称。”

那么如何定义T为命名元组呢?

标签: typescripttypescript-typingstypescript-generics

解决方案


这可能是你想要的:

type SomeOptions = {
  a: string;
};

type SomeMethod<T extends any[]> = (
  ...args: [...pre: T, otherOptions: SomeOptions]
) => void;

或者

type SomeOptions = {
  a: string;
};

type SomeMethod<T extends any[]> = (
  ...args: [...T, SomeOptions]
) => void;

推荐阅读