4 ответов:
машинопись всегда будет жаловаться, когда он не может найти символ. Компилятор поставляется вместе с набором определений по умолчанию для
window,documentи такие указаны в файле под названиемlib.d.ts. Если я делаю grep дляrequireв этом файле я не могу найти определение функцииrequire. Следовательно, мы должны сами сказать компилятору, что эта функция будет существовать во время выполнения с помощьюdeclareсинтаксис:declare function require(name:string); var sampleModule = require('modulename');в моей системе, это компилируется просто замечательно.
синтаксис:
import sampleModule = require('modulename');или
import * as sampleModule from 'modulename';затем скомпилируйте свой текст с помощью
--module commonjs.если пакет не приходят с и
package.jsonнет"typings"собственностьtscбудут лаять, что он не знает, что'modulename'относится. Для этого вам нужно найти.d.tsфайл для него на http://definitelytyped.org/, или напишите сами.если вы пишете код для узлов.в JS вы также хотите, чтобы
node.d.tsфайл из http://definitelytyped.org/.
лучшим решением является получение копии определений типов узлов. Это позволит решить все виды проблем зависимости, а не только
require(). Это было сделано ранее с помощью пакетов, таких какtypings, но, как упоминал Майк Чемберлен, типирование не рекомендуется. Современный способ делает это так:npm install --save-dev @types/nodeОн не только исправит ошибку компилятора, но и добавит определения API узла в вашу среду IDE.
использовать typings получить доступ к узлу функции из машинописного текста:
typings install env~node --globalЕсли у вас нет typings установки:
npm install typings --global
Comments