私はTypescriptを学ぼうとしています。妥当ではないと思いますが、このデモでは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
ようなTypescriptクラスがあります。
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 buildを実行すると、次のメッセージが表示されます。 "../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; }
2番目のエラーを解消することはmain.ts
できますが、ファイルで作業する瞬間を得るにはrequireステートメントが必要ですが、最初のビルドエラーが発生します。
.d.ts
しばらくの間自分でファイルを作成する必要がありますか、それとも不足しているセットアップピースがありますか?
import moment, { Moment } from 'moment';
あなたがすることができますconst x = moment();
とconst x: Moment = moment();