create-response-app error import type * как PrettyFormat из './types' в красивом формате

Это новая установка cra с шаблоном машинописного текста, запущенным на узле 13.11.0, он дает мне ошибку при попытке запустить npm start

TypeScript error in D:/Projects/personal-site/node_modules/@types/testing-library__react/node_modules/pretty-format/build/index.d.ts(7,13):
'=' expected.  TS1005

     5 |  * LICENSE file in the root directory of this source tree.
     6 |  */
  >  7 | import type * as PrettyFormat from './types';
       |             ^
     8 | /**
     9 |  * Returns a presentation string of your `val` object
    10 |  * @param val any potential JavaScript object```

2 ответа

Решение

Обновить

Спасибо за сообщение Marcelo Waisman.

Обновление Typescript до> 3.8.0 решило эту проблему.

Если строго следовать документации...

yarn add typescript @types/node @types/react @types/react-dom @types/jest

... мы должны были установить TypeScript с последней версией, а не с локальной-глобальной версией, которая может быть ниже 3.8.0.


Я нашел несколько подсказок. Может стоит открыть выпуск.

Это связано с пакетом pretty-format и его тип в create-react-app. Мы можем найти источник здесь: pretty-format / src / index.ts

import style = require('ansi-styles');
import type * as PrettyFormat from './types';

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

import * as PrettyFormat from './types';

... чтобы...

import type * as PrettyFormat from './types';

Похоже, это причина ошибки.

Фактически этот "тип импорта" представляет собой новый синтаксис, представленный в Typescript 3.8https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-8.html

Решение на самом деле очень простое (если это вариант для вас), просто обновите свой машинописный текст до 3.8+

Другие вопросы по тегам