Saya mencoba mempelajari Ketikan. Meskipun menurut saya ini tidak relevan, saya menggunakan VSCode untuk demo ini.
Saya memiliki package.json
yang memiliki potongan-potongan ini di dalamnya:
{
"devDependencies": {
"gulp": "^3.9.1",
"jspm": "^0.16.33",
"typescript": "^1.8.10"
},
"jspm": {
"moment": "npm:moment@^2.12.0"
}
}
Lalu saya memiliki kelas Ketikan main.js
seperti ini:
import moment from 'moment';
export class Main {
}
Saya gulpfile.js
terlihat seperti ini:
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'));
});
Ketika saya menjalankan gulp build, saya mendapatkan pesan: "../main.ts(1,25): Cannot file module 'moment'."
Jika saya menggunakan import moment = require('moment');
maka jspm akan berfungsi dan membawa modul saat saya menjalankan aplikasi, tetapi saya masih menerima kesalahan pembuatan. Saya juga mencoba:
npm install typings -g
typings install moment --ambient --save
Alih-alih membuat masalah menjadi lebih baik, malah menjadi lebih buruk. Sekarang saya mendapatkan kesalahan di atas pada build serta yang berikut:"../typings/browser/ambient/moment/index.d.ts(9,21): Cannot find namespace 'moment'."
Jika saya pergi ke file yang disediakan oleh pengetikan dan menambahkan di bagian bawah file:
declare module "moment" { export = moment; }
Saya bisa mendapatkan kesalahan kedua untuk pergi, tetapi saya masih membutuhkan pernyataan yang diperlukan untuk mendapatkan waktu untuk bekerja di main.ts
file saya dan saya masih mendapatkan kesalahan pembuatan pertama.
Apakah saya perlu membuat .d.ts
file saya sendiri untuk sementara waktu atau hanya ada beberapa bagian penyiapan yang saya lewatkan?
import moment, { Moment } from 'moment';
memungkinkan Anda untuk melakukanconst x = moment();
danconst x: Moment = moment();