Дубликат идентификатора выборки в машинописи - PullRequest
0 голосов
/ 18 февраля 2019

Просто начинаю с Typescript.Сделал простой проект с единственным файлом index.ts, который я хочу использовать node-fetch.Так что мой код выглядит как

index.ts

var fetch = require('node-fetch');
fetch("https://www.google.com")

При запуске tsc index.ts я получаю следующее

../../../../.nvm/versions/node/v10.14.0/lib/node_modules/typescript/lib/lib.dom.d.ts:17778:18 - error TS2300: Duplicate identifier 'fetch'.

Мое понимание

Похоже, что модуль машинописного текста, установленный глобально, включает в себя типы для выборки.У меня есть два вопроса по этому

Вопросам

  • a) Как я могу сделать так, чтобы tsc смотрел только мои текущие каталоги вниз для типов?
  • б) Если я ничего не делаю, какие каталоги tsc ищет, чтобы определить типы?
  • в) Какие-нибудь очевидные недостатки моего подхода а) стоит упомянуть?

РЕДАКТИРОВАТЬ: Я также добавил https://www.npmjs.com/package/@types/node-fetch в надежде, что это будет иметь приоритет, но не радость

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

Сначала установите наборы для Node.js и node-fetch:

npm install -D @types/node@10 @types/node-fetch

Затем используйте node-fetch:

import fetch from 'node-fetch';
fetch("https://www.google.com");

Обратите внимание на наличие ключевого слова import,import или export указывает компилятору, что ваш файл является модулем ES6, а не сценарием.В модуле вы можете определять переменные по своему усмотрению без переопределения глобальных переменных.

0 голосов
/ 19 февраля 2019

Либо перечислите файл, либо включите внешне: https://basarat.gitbooks.io/typescript/docs/project/files.html

...