diff --git a/types/storybook__addon-knobs/index.d.ts b/types/storybook__addon-knobs/index.d.ts index 3c9bbe0fc4..4d6eff536f 100644 --- a/types/storybook__addon-knobs/index.d.ts +++ b/types/storybook__addon-knobs/index.d.ts @@ -2,6 +2,7 @@ // Project: https://github.com/storybooks/storybook // Definitions by: Joscha Feth // Martynas Kadisa +// A.MacLeay // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.6 @@ -49,11 +50,11 @@ export function object(name: string, value: T, groupId?: string): T; export type SelectValue = string | number; export function select(name: string, options: { [s: string]: string }, value: T, groupId?: string): T; export function select(name: string, options: { [s: number]: string }, value: T, groupId?: string): T; -export function select(name: string, options: T[], value: T, groupId?: string): T; +export function select(name: string, options: ReadonlyArray, value: T, groupId?: string): T; export function date(name: string, value?: Date, groupId?: string): Date; -export function array(name: string, value: T[], separator?: string, groupId?: string): T[]; +export function array(name: string, value: ReadonlyArray, separator?: string, groupId?: string): T[]; export function button(name: string, handler: () => any, groupId?: string): void; diff --git a/types/storybook__addon-knobs/storybook__addon-knobs-tests.tsx b/types/storybook__addon-knobs/storybook__addon-knobs-tests.tsx index c35268ac6b..ee8f58893c 100644 --- a/types/storybook__addon-knobs/storybook__addon-knobs-tests.tsx +++ b/types/storybook__addon-knobs/storybook__addon-knobs-tests.tsx @@ -90,6 +90,14 @@ stories.add('dynamic knobs', () => { ); }); +const readonlyOptionsArray: ReadonlyArray = ['hi']; +select('With readonly array', readonlyOptionsArray, readonlyOptionsArray[0]); + +const genericArray = array('With regular array', ['hi', 'there']); + +const userInputArray = array('With readonly array', readonlyOptionsArray); +userInputArray.push('Make sure that the output is still mutable although the input need not be!'); + // groups const groupId = 'GROUP-ID1';