angularjs - error TS2300: Identificador duplicado 'require' en el proceso de compilación de TypeScript
Estoy compilando todo el TypeScript en mi proyecto de Angular, pero estoy obteniendo el conocido error:
error TS2300: Duplicate identifier 'require'.
Sin embargo, la mayoría de las personas que tienen este problema lo están experimentando porque tienen dos archivos que causan el error de duplicación. En mi caso, es por la palabra 'require' que se usa dos veces en el mismo archivo.
/typings/globals/angular/index.d.ts(1707,9):
y
/typings/globals/angular/index.d.ts(1717,9):
es el archivo de definición de tipos predeterminado de Angular que se está tomando de la fuente dt.
Tengo TypeScript tanto local como globalmente. Intenté eliminar la copia local, pero eso da error. Aquí está mi tsconfig.json:
{
"compilerOptions": {
"module": "commonjs",
"noImplicitAny": true,
"removeComments": true,
"preserveConstEnums": true,
"sourceMap": true
},
"files": [
"typings/index.d.ts"
]
}
y mi typings.json:
{
"globalDependencies": {
"angular": "registry:dt/angular#1.5.0+20160627014139",
"bootstrap": "registry:dt/bootstrap#3.3.5+20160619023404",
"jquery": "registry:dt/jquery#1.10.0+20160620094458"
}
}
y por último mi archivo principal index.d.ts:
/// <reference path="globals/angular/index.d.ts" />
/// <reference path="globals/bootstrap/index.d.ts" />
/// <reference path="globals/jquery/index.d.ts" />
Respuesta #1
No deberías listar archivos d.ts en la sección files de tu archivo tsconfig.json. Ese es el lugar donde se listan los archivos que has escrito y que necesitan ser transpilados a JavaScript. El problema que estás viendo es causado por el compilador intentando convertir tu archivo typings/index.d.ts a JavaScript, lo cual no debería hacer. Las definiciones de typings están realmente solo para que tu editor de código pueda proporcionar sugerencias de tipos, advertir sobre errores y completar el código.
Echa un vistazo a esta visión general del archivo tsconfig.json.
