3

我已经安装@types/jasmine作为devDependency。gulp-typescipt和typescript的新@types类型?

我一口任务编译我的打字稿是像这样:

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.ts(7,1):错误TS2304:找不到名称'describe'。
spec \ linter.spec.ts(8,3):错误TS2304:找不到名称'it'。
spec \ linter.spec.ts(17,5):错误TS2304:找不到名称'expect'。
spec \ linter.spec.ts(20,3):错误TS2304:找不到名称'it'。

我怎样才能得到打字稿(当使用打字打字稿)识别@types/...打字?

回答

2

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

npm install [email protected]

预一饮而尽,打字稿@ 3: 到目前为止,我的解决办法一直是手动包括所有@types分型,如下所示:

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

如果你有类型冲突的版本(这里是看你@types/[email protected]),那么你可以在他们跳过,避免重复:

gulp.src([ 
    paths.source + '**/*.ts', 
    "node_modules/@types/**/index.d.ts", 
    "!node_modules/@types/**/node_modules/**/index.d.ts"]) 
2

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

**由于某些原因,在我正在进行的项目中,当使用project.src()时,转译需要大约3秒钟,因此我坚持使用gulp.src选项。

+0

刚刚测试过;不适用于我,如果我排除node_modules。 (没有排除它与其他错误爆炸):( –

+0

您可以使用_include_属性而不是_exclude_。请参阅[tsconfig架构](http://json.schemastore.org/tsconfig) –

0

以下工作适合我。

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

NVM,也不会工作,既不使用它 “包括” 和 “排除” 在一起。

相关问题