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 빌드를 실행하면 다음 메시지가 표시됩니다. "../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
파일 에서 작업 할 순간을 얻으려면 require 문이 여전히 필요하며 여전히 첫 번째 빌드 오류가 발생합니다.
.d.ts
잠시 내 고유 한 파일 을 만들어야 합니까? 아니면 누락 된 설정 부분이 있습니까?
import moment, { Moment } from 'moment';
당신이 할 수 있습니다const x = moment();
와const x: Moment = moment();