Запятая в выражениях TypeScript JSX - PullRequest
0 голосов
/ 02 сентября 2018

Выражение в этом компоненте

const App = props => (<div>{console.log(props), JSON.stringify(props)}</div>);

результаты в

ошибка TS1005: ожидается ожидание '}'

ошибка вокруг оператора запятой. Это можно увидеть в демонстрационной версии Stackblitz , которая представляет собой проект create-react-app, в котором в качестве транспортера используется TypeScript.

В то время как оператор запятой работает так, как задумано в Babel в аналогичной ситуации.

Это неверная реализация TypeScript или Babel JSX? Что говорится в спецификации JSX? Это известная проблема? Если это ошибка TypeScript, можно ли это исправить?

1 Ответ

0 голосов
/ 02 сентября 2018

Можно было заставить выражение с оператором запятой работать, как и предполагалось, в реализации TypeScript и Babel JSX с дополнительными скобками:

{(console.log(props), JSON.stringify(props))}

Или, если вызов console.log всегда ложный, можно использовать логическое ИЛИ короткое замыкание:

{console.log(props) || JSON.stringify(props)}
...