Typescript öğrenmeye çalışıyorum. Alakalı olduğunu düşünmüyorum, ancak bu demo için VSCode kullanıyorum.
Bir var package.json
onun içinde bu parçaları vardır:
{
"devDependencies": {
"gulp": "^3.9.1",
"jspm": "^0.16.33",
"typescript": "^1.8.10"
},
"jspm": {
"moment": "npm:moment@^2.12.0"
}
}
Sonra bunun gibi bir Typescript sınıfım var main.js
:
import moment from 'moment';
export class Main {
}
Benim gulpfile.js
şuna benziyor:
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 build çalıştırdığımda şu mesajı alıyorum: "../main.ts(1,25): Cannot file module 'moment'."
Ben kullanırsanız import moment = require('moment');
o zaman jspm çalışacak ve Uygulamayı çalıştırdığınızda modülünde getirmek, ama yine de inşa hatası alıyorum. Ben de denedim:
npm install typings -g
typings install moment --ambient --save
Sorunu daha iyi hale getirmek yerine, daha da kötüleşti. Şimdi, yukarıdaki hatanın yanı sıra aşağıdakileri de alıyorum:"../typings/browser/ambient/moment/index.d.ts(9,21): Cannot find namespace 'moment'."
Yazılarla sağlanan dosyaya gidip dosyanın altına eklersem:
declare module "moment" { export = moment; }
İkinci hatayı ortadan kaldırabilirim, ancak hala çalışmam için gerekli ifadesine ihtiyacım var. main.ts
ve yine de ilk derleme hatasını alıyorum.
.d.ts
Şu an için kendi dosyamı oluşturmam gerekiyor mu yoksa eksik olduğum bazı kurulum parçaları mı var?
import moment, { Moment } from 'moment';
const x = moment();
const x: Moment = moment();