मैं टाइपस्क्रिप्ट सीखने की कोशिश कर रहा हूं। हालांकि मुझे नहीं लगता कि यह प्रासंगिक है, मैं इस डेमो के लिए VSCode का उपयोग कर रहा हूं।
मेरे पास package.json
इसमें ये टुकड़े हैं:
{
"devDependencies": {
"gulp": "^3.9.1",
"jspm": "^0.16.33",
"typescript": "^1.8.10"
},
"jspm": {
"moment": "npm:moment@^2.12.0"
}
}
फिर मेरे पास एक टाइपस्क्रिप्ट क्लास main.js
है:
import moment from 'moment';
export class Main {
}
मेरा gulpfile.js
ऐसा दिखता है:
var gulp = require('gulp');
var typescript = require('gulp-tsb');
var compilerOptions = {
"rootDir": "src/",
"sourceMap": true,
"target": "es5",
"module": "amd",
"declaration": false,
"noImplicitAny": false,
"noResolve": true,
"removeComments": true,
"noLib": false,
"emitDecoratorMetadata": true,
"experimentalDecorators": true
};
var typescriptCompiler = typescript.create(compilerOptions);
gulp.task('build', function() {
return gulp.src('/src')
.pipe(typescriptCompiler())
.pipe(gulp.dest('/dest'));
});
जब मैं gulp का निर्माण करता हूं, तो मुझे संदेश मिलता है: "../main.ts(1,25): Cannot file module 'moment'."
यदि मैं उपयोग करता हूं import moment = require('moment');
तो jspm काम करेगा और जब मैं एप्लिकेशन चलाऊंगा तो मॉड्यूल में लाऊंगा, लेकिन मुझे अभी भी बिल्ड एरर प्राप्त हो रहा है। मैंने भी कोशिश की:
npm install typings -g
typings install moment --ambient --save
हालांकि समस्या को बेहतर बनाने के बजाय, यह खराब हो गया। अब मुझे बिल्ड के साथ-साथ निम्नलिखित में भी उपरोक्त त्रुटि मिलती है:"../typings/browser/ambient/moment/index.d.ts(9,21): Cannot find namespace 'moment'."
यदि मैं टाइपिंग द्वारा प्रदान की गई फ़ाइल पर जाता हूं और फाइल के नीचे जोड़ता हूं:
declare module "moment" { export = moment; }
मुझे दूर जाने के लिए दूसरी त्रुटि मिल सकती है, लेकिन मुझे अभी भी अपनी main.ts
फ़ाइल में काम करने के लिए पल-पल की आवश्यकता कथन की आवश्यकता है और अभी भी पहली बिल्ड त्रुटि मिल रही है।
क्या मुझे .d.ts
पल के लिए अपनी फ़ाइल बनाने की आवश्यकता है या क्या कुछ सेटअप टुकड़ा है जो मुझे याद आ रहा है?
import moment, { Moment } from 'moment';
const x = moment();
const x: Moment = moment();