angularjs - "Dubblettidentifierare"-fel med Angular2 och TSD
Jag försöker konvertera ett projekt från Angular 1 till Angular 2.
Detta är ett klient- och serverprojekt med viss gemensam kod (så jag håller det tillsammans). Jag vill använda Angular 2 på klientsidan så jag följde ng2 QuickStart. Jag försöker för närvarande bygga det inuti mitt projekt.
Jag använder TSD för att hantera mina beroendes typdefinitioner. Några av dessa beroenden, som socket.io, är beroende av node.d.ts. Mitt problem är att angular2 redan exponerar node.d.ts och skapar en ambient definition, så när jag vill använda TSD med angular2 får jag en konflikt mellan de två definitionerna: typings\node\node.d.ts(961,9): error TS2300: Duplicate identifier 'path'.
Här är min gulp-uppgift:
gulp.task('build.conflict', function(){
var browserProject = tsc.createProject('browser.tsconfig.json', {
typescript: typescript
});
var src = [
'src/browser/**/*.ts',
'typings/**/*.d.ts' // commenting out this line results in unknown modules
];
var result = gulp.src(src)
.pipe(tsc(browserProject));
return result.js
.pipe(gulp.dest('build/browser'));
});
Jag har också satt upp ett enkelt repository som visar mitt problem. Hur kan jag lösa detta fel samtidigt som jag behåller mina TSD-typningar. (Den bästa lösningen skulle vara att förhindra att angular2 exponerar sin interna node.d.ts)
Svar #1
Om du började använda Typings, skulle du bara kunna tillåta att upptäcka *.d.ts från webbläsarberoenden i tsconfig.json. Här är ett utmärkt exempel på John Papas NgConf-demo.
UPPDATERING: Detta är föråldrat enligt Typings > 1.0.0.