Запятая в выражениях TypeScript JSX
Выражение в этом компоненте
const App = props => (<div>{console.log(props), JSON.stringify(props)}</div>);
результаты в
ошибка TS1005: ожидается "}"
ошибка вокруг оператора запятой. Это можно увидеть в этой демонстрации Stackblitz, которая create-react-app
проект, который использует TypeScript как транспортер.
В то время как оператор запятой работает, как задумано, в Babel в аналогичной ситуации
Это неправильная реализация TypeScript или Babel JSX? Что говорится в спецификации JSX? Это известная проблема? Если это ошибка TypeScript, можно ли это исправить?
1 ответ
Можно было заставить выражение с оператором запятой работать так, как и предполагалось в реализации TypeScript и Babel JSX, с использованием дополнительных скобок:
{(console.log(props), JSON.stringify(props))}
Или если это console.log
вызов, который всегда ложен, может использоваться логическое ИЛИ короткое замыкание:
{console.log(props) || JSON.stringify(props)}