Как использовать generi c машинописные методы в нескриптовом проекте? - PullRequest
1 голос
/ 08 марта 2020

Я работаю над проектом, созданным с помощью React, на основе create-реакции-приложения . Я буду использовать библиотеку, которая была написана на машинописи. Как я могу использовать обобщенные c методы, определенные в этой библиотеке, в моем проекте? В настоящее время я получаю сообщение об ошибке в коде Visual Studio, в котором говорится, что «аргументы типа» могут использоваться только в файле .ts. ». Какой лучший способ решить эту проблему?

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

Ответы [ 2 ]

0 голосов
/ 09 марта 2020

1. create-реакция-приложение с машинописью

Вы можете создать реагирующий проект с машинописью

npx create-react-app my-app --typescript

и добавить разрешение Js в tsconfig.json

{
  ...
  "compilerOptions": {
    ...
    "allowJs": true,
    ...
  },
  ...
}

Это Вы можете использовать файлы смешанного типа *.js и *.ts для использования машинописи по требованию.

2. Включите ввод JS

, добавив // @ts-check поверх файла и включите подстрочный текст для *.js files

0 голосов
/ 09 марта 2020

Если вы пытаетесь использовать TS в JS проекте, лучше всего начать с добавления // @ts-check комментария вверху каждого файла. VS C будет "проверять" ваш файл с помощью компилятора TypeScript, например,

// @ts-check
[] + {} // ERROR

Конечно, [] + {} все еще является синтаксически допустимым JS кодом, но компилятор TS выдаст ошибку здесь.

Lib, написанный в TS, должен автоматически набирать // @ts-check.

Второй ствол - это проектное отверстие JS, созданное компилятором TypeScript:

npm i typescript --save-dev
npx tsc src/main.js --allowJs --out /dev/null

--allowJs позволяет компилятору работать на .js файлов. Вывод /dev/null, потому что мы не хотим иметь никаких скомпилированных файлов, мы просто хотим знать, что компилятор выдает ошибку или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...