Рубрики
Без рубрики

Поддержка вымотания (объект и массив) Разрушение в JavaScript и Teadncript

Радость объекта и деструкурирования массива, скорее всего, вам известна (проверьте пример ниже, если … Tagged с учебником, JavaScript, Teamscript, Functional.

Радость объекта и разрушения массива, скорее всего, вам известна (проверьте пример ниже, если это не 🙂). Но как насчет радости возможности выбирать между ними при использовании ту же функции? Как увлекательно это будет!?

Подожди, но почему? Ну, потому что у каждого есть свои эпохии, и обычно нет достаточно хорошей причины, чтобы заставить разработчику использовать один из них по дизайну. Разрушивание массива позволяет вам более кратко переименовать переменные переменные, но требует запоминания заказа, а деструктурирование объектов заставляет вас запомнить название, но не возражает против заказа.

Что такое деструктурируют объект и массив?

// object destructuring
const o = {
  firstN: 'Plants',
  v: 'need',
  secondN: 'water'
}
const {firstN, secondN} = o;
console.log(secondN); // water

// array destructuring
const a = ['Plants', 'need', 'water'];
const [firstNoun, verb] = a;
console.log(firstNoun); // Plants

Это сжатый способ получить переменные из более сложного типа. Легко использовать и легко читать. При использовании адекватно. И для того, чтобы максимизировать вероятность того, что они действительно используются правильно, вы можете отложить выбор, для которого из них используется, позволяя как возвращать из ваших функций. Так же, как UseInView () React Club Что вдохновило меня, чтобы написать это.

Сначала в чистом JavaScript:

const veryImportantSelfContainedLogic = (n) => {
  const result = ['Plants', 'need', n, 'waters'];

  result.firstWord = result[0];
  result.anotherWord = result[1];
  result.notAWord = result[2];
  result.lastWord = result[3];

  return result;
};

А затем в Teadycript (настоятельно рекомендуется, если вы еще не сделали переход):

type VeryImportantSelfContainedLogicResponse = [string, string, number, string] & {
  firstWord: string;
  anotherWord: string;
  notAWord: number;
  lastWord: string;
};

const veryImportantSelfContainedLogic = (
  n: number = 5
): VeryImportantSelfContainedLogicResponse => {
  const result = ['Plants', 'need', n, 'waters'] as VeryImportantSelfContainedLogicResponse;

  result.firstWord = result[0];
  result.anotherWord = result[1];
  result.notAWord = result[2];
  result.lastWord = result[3];

  return result;
};

Затем разработчик, использующий вашу функцию, может выбирать, какой тип реструктуризации в зависимости от их настроения (или некоторых других соображений, если кто-то находит более важно):

// decided to rename the second variable in comparison to the function author's intention
const [firstWord, secondWord] = veryImportantSelfContainedLogic(3); 

// has to follow the naming
const {firstWord, anotherWord} = veryImportantSelfContainedLogic(5);

// or redefine it like so
const {firstWord, anotherWord: secondWord} = veryImportantSelfContainedLogic(5);

Аккуратный, не так ли? ☀️.

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

Оригинал: “https://dev.to/m3h0w/supporting-choiceful-destructuring-object-and-array-in-javascript-and-typescript-22a6”