TypeScript中 Parameters[0]代表什么意思?

在TypeScript中,Parameters<T>是一个类型操作符,它会提取函数类型T的参数类型作为一个元组(tuple)类型。这里的 typeof Table 指的是获取名为 Table 的构造函数或函数类型的类型。

如果 Table 是一个类或函数,那么 Parameters<typeof Table>[0] 代表了调用 Table 构造函数时第一个参数的类型。

例如:

class Table {
  constructor(public name: string, public columns: Column[]) {}
}

// 现在我们使用 Parameters<typeof Table>
type FirstConstructorParameter = Parameters<typeof Table>[0];

// 这里 FirstConstructorParameter 类型将会是 'string',因为 Table 构造函数的第一个参数是 'name: string'

如果 Table 是个函数而不是类:

function Table(name: string, size: number) {}

type FirstFunctionParameter = Parameters<typeof Table>[0];

// 这里 FirstFunctionParameter 类型将会是 'string',因为 Table 函数的第一个参数是 'name: string'

总之,在这个上下文中,Parameters<typeof Table>[0] 获取的是 Table 构造函数或函数接受的第一个参数的类型。

posted @ 2024-02-21 14:36  龙陌  阅读(211)  评论(0)    收藏  举报