Установить значение по умолчанию свойства объекта, переданного параметру в функцию - PullRequest
0 голосов
/ 09 апреля 2020

Ключевым отличием в этом вопросе является то, что я хочу, чтобы на мое свойство ссылались внутри объекта, а не на его структуру.

export interface MapSettings {
  up: 'trueNorth' | 'runIn' | 'magneticNorth' | 'user';
  rotation?: number;
}

type MapProps = {
  settings: MapSettings;
};

export const Map: FunctionComponent<MapProps> = function Map({
  settings,
}) {

Я хочу установить значение по умолчанию для settings.rotation, но я также хочу сохранить на него ссылаются как settings.rotation, потому что настройки имеют намного больше свойств, чем показано здесь, и я знаю, откуда берется значение.

Это лучший ответ, который я могу придумать:

export const Map: FunctionComponent<MapProps> = function Map({
  settings: { rotation: settingsRotation = 360, ...settings },
}) {

Но это не позволяет мне ссылаться на settings.rotation со значением по умолчанию 360.

Ответы [ 2 ]

1 голос
/ 09 апреля 2020

просто проверьте и установите:

export const Map: FunctionComponent<MapProps> = function Map({
  settings,
}) {
  settings.rotation = (settings.rotation || settings.roation === 0) ? settings.rotation : 360
0 голосов
/ 09 апреля 2020

Значение по умолчанию упоминается как { someKey = 'defaultValue' } вставка из `{someKey: 'defaultValue'}

Так что вы можете написать его как

{
   settings = { rotation: settingsRotation = 360 },
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...