Here's what I'm trying to do:
export const dashboardSchemaOption = {
[DashboardStateKey.INSTRUMENT_TUNING]: S.String,
[DashboardStateKey.TUNING]: S.Array(S.String),
[DashboardStateKey.KEY_NOTE]: S.String,
[DashboardStateKey.SCALE]: S.Array(S.String),
[DashboardStateKey.CHORD]: S.Array(S.String),
[DashboardStateKey.POSITION]: S.String,
[DashboardStateKey.OPEN_ACCORDION_IDS]: S.Array(S.String),
[DashboardStateKey.SONG]: S.String,
[DashboardStateKey.INSTRUMENT]: S.String,
[DashboardStateKey.CREDITS]: S.String,
[DashboardStateKey.LYRICS]: S.String,
[DashboardStateKey.TRANSLATION]: S.String,
[DashboardStateKey.MAX_FRETS]: S.String,
[DashboardStateKey.SELECT_CELL_TO_SET]: S.Literal(
"scale",
"position",
"tone",
),
};
const guard = (key: DashboardStateKey, s: any) => {
const schema = dashboardSchemaOption[key];
return S.is(schema)(s);
};
Typescript is complaining about schema argument passed to S.is: ultimately: Type 'string' is not assignable to type 'readonly string[]'