function foo(a: number, b: string) { return true; } type Foops = Parameters; const x = (a: number) => 5; type Xps = Parameters; const a: Xps = ['should-not-work']; // works, but shouldn't function t(...args: Xps) {} // should work class C { constructor(a: number, b: string) { } } type Cps = Parameters; // should not work type Ccps = ConstructorParameters; // should be [number, string] class D { constructor(a: number, ...rest: string[]) { } } type Dcps = ConstructorParameters; // should be [number, ...string[]]