当前位置: 首页 > 知识库问答 >
问题:

gulp 打字稿引发错误 TS2300:重复标识符“时刻”

云伯寅
2023-03-14

我有一个角度的应用程序生成使用约曼吞咽打字发电机。

在构建打字稿期间突然没有任何明显的原因(项目更改)开始抛出错误:

.tmp/typings/moment/moment-node.d.ts(6,16): error TS2300: Duplicate  identifier 'moment'.
[22:08:34] [TypeScript] TypeScript error: .tmp/typings/moment/moment-node.d.ts(6,16): error TS2300: Duplicate identifier 'moment'.
.tmp/typings/moment/moment.d.ts(8,13): error TS2300: Duplicate identifier 'moment'.

请参阅以下文件的以下内容以供参考。我从古普脚本任务中删除了“tsd:安装”,以防止构建覆盖d.ts文件和tsd.d.ts文件。然后尝试修改tsd.d.ts来解决问题(我试图删除矩节点、矩、更改顺序,我还试图编辑moment.d.ts和moment-node.d.ts,没有任何效果:/)。

我的 tsd.json 文件:

{
  "version": "v4",
  "repo": "borisyankov/DefinitelyTyped",
  "ref": "master",
  "path": ".tmp/typings",
  "bundle": ".tmp/typings/tsd.d.ts"
}

我的script.js:

'use strict';

var path = require('path');
var gulp = require('gulp');
var conf = require('./conf');

var browserSync = require('browser-sync');

var $ = require('gulp-load-plugins')();

  var tsProject = $.typescript.createProject({
    target: 'es5',
    sortOutput: true
  });

  gulp.task('scripts', ['tsd:install'], function () {
  return gulp.src(path.join(conf.paths.src, '/app/**/*.ts'))
    .pipe($.sourcemaps.init())
    .pipe($.tslint())
    .pipe($.tslint.report('prose', { emitError: false }))
    .pipe($.typescript(tsProject)).on('error', conf.errorHandler('TypeScript'))
    .pipe($.concat('index.module.js'))
    .pipe($.sourcemaps.write())
    .pipe(gulp.dest(path.join(conf.paths.tmp, '/serve/app')))
    .pipe(browserSync.reload({ stream: true }))
    .pipe($.size())
});

生成的tsd.d.ts:

/// <reference path="angular-local-storage/angular-local-storage.d.ts" />
/// <reference path="angular-ui-router/angular-ui-router.d.ts" />
/// <reference path="angularjs/angular-animate.d.ts" />
/// <reference path="angularjs/angular-cookies.d.ts" />
/// <reference path="angularjs/angular-mocks.d.ts" />
/// <reference path="angularjs/angular-resource.d.ts" />
/// <reference path="angularjs/angular-sanitize.d.ts" />
/// <reference path="angularjs/angular.d.ts" />
/// <reference path="bootstrap/bootstrap.d.ts" />
/// <reference path="d3/d3.d.ts" />
/// <reference path="jquery/jquery.d.ts" />
/// <reference path="moment/moment.d.ts" />
/// <reference path="moment/moment-node.d.ts" />
/// <reference path="toastr/toastr.d.ts" />

共有3个答案

东郭弘
2023-03-14

删除剑道all.d.ts然后在wwwroot重建你的网站。这对我有用

束阳旭
2023-03-14

错误消息具有误导性。我相信原始错误的这个真正原因是由于类型定义文件暂时使用了您当前版本不支持的 TypeScript 功能。运行以下命令以获取最新版本的 gulp 打字稿,然后我认为一切都适合您,而不必将您的 TSD 文件限制为特定版本。将其限制为特定修订版将有其自身的问题。

npm install gulp-typescript@2.9.2 --save-dev
杜哲彦
2023-03-14

如果你指向一个特定的版本,比如1.4.1,而不是参考的“大师”:-我认为它会为你修复它。它对我有用。

{
   "version": "v4",
  "repo": "borisyankov/DefinitelyTyped",
  "ref": "1.4.1",
  "path": ".tmp/typings",
  "bundle": ".tmp/typings/tsd.d.ts"
}
 类似资料:
  • 我使用Angular/Universal-Starter作为起动器,它使用Typescript2和WebPack2。 我添加了包和。在添加这些包和相关类型之后: 它在终端中给出了以下错误: 我的tsconfig.json文件: 我如何解决这个错误?谢谢

  • 在我升级到Typescript 2.9.1(从2.8升级到2.8)后,我遇到了编译错误: 当我使用Typescript2.7和2.8时,这种情况从来没有发生过。 环境: MacOS 10.13.5 node.js v9.11.1 NPM:6.1.0 typescript 2.9.1(在我的项目的文件夹中,没有全局typescript)

  • 问题是 我使用的是和 我成功地重新安装了npm_modules,但是还没有修复我处理的内容。 然后,任务“scripts-javascript-dist”从 你能带领我解决这个问题吗? null 我想,我错过了什么,但我认不出是什么。

  • 问题内容: 这个问题已经在这里有了答案 : MySQLSyntaxErrorException在“?”附近 尝试执行PreparedStatement时 (2个答案) 5年前关闭。 我使用PreparedStatements准备查询,当我使用condition参数对查询进行硬编码时,它运行良好。 但如果从setString()方法传递参数,则会抛出错误。 在错误日志中,我的查询上方看起来不错。 P

  • 我正在努力寻找 有什么不同?

  • 我的语句似乎抛出了语法错误。我已经阅读了语句应该如何编写(以及脚本中的其他语句没有问题),因此我不确定为什么会有问题。 <代码>