diff --git a/package.json b/package.json index 873e7b801..e04468d0d 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,8 @@ "node": ">=16" }, "scripts": { - "test": "xo && tsd && tsc && node script/test/source-files-extension.js" + "test": "xo && tsd && tsc && npm run test:set-parameter-type && node script/test/source-files-extension.js", + "test:set-parameter-type": "tsc --noEmit test-d/set-parameter-type" }, "files": [ "index.d.ts", diff --git a/source/set-parameter-type.d.ts b/source/set-parameter-type.d.ts index e030f2b9a..a28529b14 100644 --- a/source/set-parameter-type.d.ts +++ b/source/set-parameter-type.d.ts @@ -1,5 +1,5 @@ import type {IsUnknown} from './is-unknown'; -import type {StaticPartOfArray} from './internal'; +import type {StaticPartOfArray, VariablePartOfArray} from './internal'; import type {UnknownArray} from './unknown-array'; /** @@ -32,7 +32,10 @@ type MergeObjectToArray[number] + : K extends keyof TObject ? TObject[K] : TArray[K] } : TObject extends object // If `TObject` is a object witch key is number like `{0: string, 1: number}` diff --git a/test-d/set-parameter-type.ts b/test-d/set-parameter-type.ts index 2ce95816d..969eac5c3 100644 --- a/test-d/set-parameter-type.ts +++ b/test-d/set-parameter-type.ts @@ -22,9 +22,9 @@ expectType<(a: string, b: string, c: boolean, ...args: boolean[]) => null>(test2 test2('1', '2', true, true); // Test another define way -declare const test3: SetParameterType; -expectType<(a: string, b: boolean, c: Object, ...args: boolean[]) => null>(test3); -test3('1', true, {}, true); +declare const test3: SetParameterType; +expectType<(a: 'a', b: 'b', c: Object, ...args: boolean[]) => null>(test3); +test3('a', 'b', {}, true); // Test `...args` parameter declare const testargs: SetParameterType;