Made signature of types.stringLiteral() a bit more ergonomic
This commit is contained in:
parent
deb1ad8793
commit
97ce94d52a
3 changed files with 24 additions and 23 deletions
|
@ -61,17 +61,17 @@ export interface PropTypeConfig_StringLiteral<T extends string>
|
|||
extends IBasePropType<T> {
|
||||
type: 'stringLiteral'
|
||||
default: T
|
||||
options: ReadonlyArray<T>
|
||||
options: Record<T, string>
|
||||
}
|
||||
|
||||
export function stringLiteral<T extends string>(
|
||||
defaultValue: T,
|
||||
options: ReadonlyArray<T>,
|
||||
): PropTypeConfig_StringLiteral<T> {
|
||||
export function stringLiteral<Opts extends {[key in string]: string}>(
|
||||
defaultValue: Extract<keyof Opts, string>,
|
||||
options: Opts,
|
||||
): PropTypeConfig_StringLiteral<Extract<keyof Opts, string>> {
|
||||
return {
|
||||
type: 'stringLiteral',
|
||||
default: defaultValue,
|
||||
options: [...options],
|
||||
options: {...options},
|
||||
[s]: 'TheatrePropType',
|
||||
valueType: null as $IntentionalAny,
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue