3

我已@types/jasmine作为 devDependency 安装。

我编译打字稿的 gulp 任务是这样的:

gulp.task('compile:tests', ['compile:typescript', 'clean:tests'], function () {
    var project = ts.createProject('tsconfig.json', { typescript: typescript });

    var tsResult = gulp.src(['spec/**/*spec.ts'])
        .pipe(ts(project));

    return tsResult.js
        .pipe(gulp.dest('spec/'));
});

和我的 tsconfig.json

{
    "compilerOptions": {
        "target": "es6",
        "module": "commonjs",
        "moduleResolution": "node"
    },
    "exclude": [
        "node_modules"
    ]
}

但这会导致错误:

spec\linter.spec.ts(7,1):错误 TS2304:找不到名称“描述”。
spec\linter.spec.ts(8,3):错误 TS2304:找不到名称“它”。
spec\linter.spec.ts(17,5):错误 TS2304:找不到名称“期望”。
spec\linter.spec.ts(20,3):错误 TS2304:找不到名称“它”。

我怎样才能让打字稿(当被 gulp-typescript 使用时)来识别打字@types/...

4

3 回答 3

2

更新: 最新版本修复了问题:安装

npm install gulp-typescript@3

pre gulp-typescript@3: 到目前为止,我的工作是手动包含所有 @types 类型,如下所示:

gulp.src(['spec/**/*spec.ts', "./node_modules/@types/**/*.d.ts"])

如果您有相互冲突的类型版本(这里正在查看您@types/node@x),那么您可以跳过它们以避免重复:

gulp.src([
  paths.source + '**/*.ts', 
  "node_modules/@types/**/index.d.ts", 
  "!node_modules/@types/**/node_modules/**/index.d.ts"])
于 2016-08-22T19:44:36.310 回答
2

您可以使用project.src()而不是gulp.src(['typings-glob', 'sources-glob']).

** 出于某种原因,在我正在进行的项目中,转译在project.src()使用时需要多花约 3 秒,所以我坚持使用该gulp.src选项。

于 2016-08-23T06:11:16.123 回答
0

以下为我工作。

{
    "compilerOptions": {
        "target": "es6",
        "module": "commonjs",
        "moduleResolution": "node"
    },
    "files": [
        "node_modules/@types/**/*.d.ts"
    ],
    "exclude": [
        "node_modules"
    ]
}

nvm,这不起作用,同时使用“包含”和“排除”也不起作用。

于 2016-10-14T01:09:46.080 回答