Почему я не могу получить доступ к свойствам функции? - PullRequest
3 голосов
/ 02 августа 2020

Я пишу функцию со ссылкой на функции обратного вызова. Однако я не могу получить доступ к его свойствам. быть правильным способом доступа к имени функции (или другим свойствам Function в этом отношении)?

Версия машинописного текста: "ˆ3.9.7" (последняя как ко дню публикации)

Ответы [ 2 ]

1 голос
/ 08 августа 2020

Хорошо, я нашел причину и как исправить. Эта проблема возникла из-за того, как мой tsconfig.json был настроен внутри моего проекта.

// tsconfig.json
{
  "compilerOptions": {
    "target": "es5",
    // ....
  },
}

Причина, по которой interface Functon, была объявлена ​​только в lib.es6.d.ts

Итак, в зависимости от потребностей, чтобы решить эту проблему, вы можете

  • Либо обновить целевую версию в tsconfig.json

    {
      "compilerOptions": {
         "target": "es6" // was "es5"
         // ...
      }
    }
    
  • Или укажите "lib" для включения в компиляцию

    {
      "compilerOptions": {
          "target": "es5",
          "lib": ["es6", "dom", "es2016", "es2017", "es5"], // needs at least es6
         // ...
      }
    }
    
0 голосов
/ 02 августа 2020
import { Dispatch, SetStateAction } from 'react'
import { FieldType, ErrorType } from 'types/FieldTypes'

const handleErrors = (
  setField: Dispatch<SetStateAction<FieldType>>,
  callback: {
    name: 'name of callback',
    run: (args) => {
      try {
        callback.run();
      } catch (e) {
      const newError: ErrorType = {
        name: callback.name,
        message: e.message,
      };
      setField((prevData) => ({
        ...prevData,
        errors: [...prevData.errors || [], newError],
      });
    }
  }
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...