Tôi đang cố gắng học tập chữ. Mặc dù tôi không nghĩ nó có liên quan, nhưng tôi đang sử dụng VSCode cho bản demo này.
Tôi có một package.json
cái có những phần này trong đó:
{
"devDependencies": {
"gulp": "^3.9.1",
"jspm": "^0.16.33",
"typescript": "^1.8.10"
},
"jspm": {
"moment": "npm:moment@^2.12.0"
}
}
Sau đó, tôi có một lớp Typecript main.js
như thế này:
import moment from 'moment';
export class Main {
}
Của tôi gulpfile.js
trông như thế này:
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'));
});
Khi tôi chạy bản dựng gulp, tôi nhận được thông báo: "../main.ts(1,25): Cannot file module 'moment'."
Nếu tôi sử dụng import moment = require('moment');
thì jspm sẽ hoạt động và đưa vào mô-đun khi tôi chạy ứng dụng, nhưng tôi vẫn nhận được lỗi xây dựng. Tôi cũng đã thử:
npm install typings -g
typings install moment --ambient --save
Thay vì làm cho vấn đề tốt hơn, nó lại trở nên tồi tệ hơn. Bây giờ tôi gặp lỗi ở trên trên bản dựng cũng như những thứ sau:"../typings/browser/ambient/moment/index.d.ts(9,21): Cannot find namespace 'moment'."
Nếu tôi đi đến tệp được cung cấp bởi cách đánh máy và thêm vào cuối tệp:
declare module "moment" { export = moment; }
Tôi có thể gặp lỗi thứ hai để biến mất, nhưng tôi vẫn cần câu lệnh request để có thời gian hoạt động trong main.ts
tệp của mình và vẫn gặp lỗi bản dựng đầu tiên.
Tôi có cần tạo .d.ts
tệp của riêng mình trong giây lát hay chỉ có một số phần thiết lập mà tôi đang thiếu?
import moment, { Moment } from 'moment';
cho phép bạn làmconst x = moment();
vàconst x: Moment = moment();