Изучайте современный JavaScript с нами совершенно бесплатно!

С чего начать программисту.

Решенные задания

Есть два способа доступа к свойствам объекта: dot notation (через точку .) and bracket notation (через квадратные скобки [], как в случае с массивами).

Точку вы используете тогда, когда заранее знаете имя свойства, к которому хотите обратиться.

Вот пример того, как обратиться к свойству объекта, используя точку:

var myObj = {
  prop1: "val1",
  prop2: "val2"
};
var prop1val = myObj.prop1; // val1
var prop2val = myObj.prop2; // val2


Получите значения свойств объекта testObj используя точечную нотацию.

  1. Установите переменной hatValue значение, равное свойству объекта hat
  2. Задайте переменной shirtValue значение, равное свойству объекта shirt


Задачи где нужна помощь

  1. Статус
    Задача
    Дата создания
    Планируемая дата начала
    Планируемая дата выполнения
    Дата начала
    Дата выполнения
    Постановщик
    Кто работает
  2. Выполняется

    Задача: Загрузка картинок из редактора через @prisma-cms/uploader Нужна помощь

    Проект: Обучение. Март.

    Разбираю Editor.js и уперся: как залить картинку, которую добавляем через редактор.

    В редакторе есть функция, в которую залетает файл, в ней надо загрузить файл и вернуть полную ссылку на файл.


    import Uploader from '@prisma-cms/uploader' ... uploadByFile(file: string | Blob) { console.log('file', file) //Здесь пытаюсь через Uploader загрузиться и получить url return Uploader.upload(file).then(() => { return { success: 1, file: { url: 'http://localhost:3000/uploads/images/1638094124655-Z62_3167.jpg', }, } }) }, },

    Ругается на .upload(file): Property 'upload' does not exist on type 'typeof Uploader'.ts(2339)

    Понятно ,что куда-то совсем не туда полез ,нео выползти не получается.

    Нужна помощь!
    Вопрос: как правильно пристроить Uploader в этом случае?
    28 нояб. 2021 г., 14:06
    15 дек. 2021 г., 6:23
  3. Новая

    Задача: Запрос уникального объекта не по id Нужна помощь

    Проект: Обучение. Март.


    Вытаскиваю из url с помощью useRoute порпаметр поста urlname и по нему делаю фильтр среди всех постов. Работает, но явно это гланды через ж...
    Как в том случае следкет поступить?
    24 нояб. 2021 г., 8:56
  4. Выполняется

    Задача: Перенести страницы и настроить роутинг 2 Нужна помощь

    Проект: Учебный проект на next-js. Покемоны.

    Перенести оставшиеся страницы на NextJs:

    1. Перенести стили из css в styled-components
    2. Пофикстить Typescript ошибки
    3. Пофиксить подключение к firebase

    17 февр. 2021 г., 18:04
    17 февр. 2021 г., 0:00
    21 февр. 2021 г., 0:00
    17 февр. 2021 г., 0:00

Все задачи где нужна помощь

Новые Комментарии

Ушел перепроходить курс по реакту)
>> Не очень понял, почему, но мне вообще оказалось не нужно распарсивать JSON.
Это потому что в GraphQL-схеме у тебя задан тип JSON.
{ "name": "content", "description": null, "args": [], "type": { "kind": "SCALAR", "name": "JSON", "ofType": null }, "isDeprecated": false, "deprecationReason": null },
GraphQL-сервер сам на лету обрабатывает JSON-поля. Точнее чистый GraphQL таким не занимается, но apollo-server да.

>> здесь все равно поставил :any, так как не нашел иного типа для объекта data

С any тут все понятно: у тебя для моля задано JSON. Сам же наверняка понимаешь, что по сути там может прийти любая валидная JSON-строка, так что при парсинге никак нельзя быть уверенным, какая конечная структура получится. Тем не менее, прелесть any в том, что ты легко этому можешь задать свой тип заместо any. Пример:


Как видишь, здесь я для data уже описал более четкую структуру, прописав, что это объект, который содержит свойство src, тип которому - строка (правда обязательно ли содержит или нет, это тебе уже виднее, а то может там должен быть тип src?: string | null).
А вот text я не описал, потому вот ошибки появились, надо прописать.

Но это в случае, если у тебя там структура заранее известна и она такая и есть. Ежели ты предполагашь, что там в итоге просто будет объект с произвольными полями, то можешь так описать:
data: Record<string, string>
Тогда будет доступно любое свойство, а его значение будет расценено как строка.

Николай, привет!
Посмотри, пожалуйста, исправленный вариант: https://github.com/linklib/miniwar/commit/963bea3dbc40ea5e49f813cd441ffffd29e8d342

Не очень понял, почему, но мне вообще оказалось не нужно распарсивать JSON.

И вопрос: здесь все равно поставил :any, так как не нашел иного типа для объекта data: https://github.com/linklib/miniwar/blob/963bea3dbc40ea5e49f813cd441ffffd29e8d342/src/pages/Posts/Post/View/index.tsx#L8
Явно что-то на базовом понтийном уровне не выстроено в башке, вот хочу разобраться...
Николай, спасибо! Дорабатываю код.

Все комментарии