从另一种类型创建“可选”类型的快速方法?

时间:2020-01-13 14:45:27

标签: typescript

如果我使用此类型Thing

type Thing = {
  prop1: string,
  prop2: number,
  // etc
}

是否可以快速创建OptionalThing

type OptionalThing = {
  prop1?: string,
  prop2?: number,
  // etc?
}

例如,我将其用于实用程序函数以创建类型MyState的自定义状态,该状态仅传递部分状态。

export const createAppState = (substates: OptionalAppState, startingState = { ...defaultAppState }): AppState => {
  let { settings, data } = substates;

  if (settings) startingState.settings = { ...defaultSettingsState, ...settings };
  if (data) {
    data.series = data.series.map(series => {
      return ({
        ...initializedFrontEndData, // start with initialized
        ...series, // merge in basic series values
        data: { // merge in values for each of the data sets
          ...initializedFrontEndSeries.data, ...series.data,
        },
      });
    });

    startingState.data = { ...defaultDataState, ...data };
  }

  return startingState;
};

在这种情况下,我想“可选”应用状态。

1 个答案:

答案 0 :(得分:2)

您可以使用

const x : Partial<Thing> = { prop1 : 'val'};