Неожиданный токен при вводе функции с деструктурирующими параметрами назначения в Create-React-App - PullRequest
0 голосов
/ 14 марта 2019

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

type somefunc = ({name} : {name: string}) => boolean;

Это дает мне следующую ошибку времени компиляции:

. / Src / App.tsx SyntaxError: /apps/src/App.tsx: неожиданный токен, ожидается ")" (9:24)

Подсвечивает ошибку на : между {name} и {name: string}. Тем не менее, я понимаю, что это намеченный способ ввода параметров функции деструктуры для функции.

Версия моего узла - node v10.13.0, а версия моего реагирующего сценария - react-scripts v2.1.1, которая должна быть достаточно актуальной.

Как я мог заставить компилятор понимать этот синтаксис?

1 Ответ

1 голос
/ 14 марта 2019

Если вы хотите ввести параметр в объявлении типа функции, вы должны написать его следующим образом:

type somefunc = (param : {name: string}) => boolean;

В нем говорится, что функция (=>) возвращает boolean и принимает один параметр типа объекта {...} с атрибутом name типа string.

И тогда вы можете использовать деструктуризацию в определении функции:

const myfn: somefunc = ({name}) =>  {
    console.log('Name: ', name);
    return true;
}

myfn({name: 'John'});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...