왜 이런 종류의 오류가 더 많이 발생합니까? 아래의 키 코드 스 니펫뿐만 아니라 리포지토리에 대한 링크를 추가하고 있습니다. 종속성과 “포함”체인 작동 방식에 대한 기본적인 오해가 있다고 생각합니다.
csvproc(master)> tsc
node_modules/typescript/bin/lib.core.d.ts(83,5): error TS2300: Duplicate identifier 'configurable'.
node_modules/typescript/bin/lib.core.d.ts(84,5): error TS2300: Duplicate identifier 'enumerable'.
node_modules/typescript/bin/lib.core.d.ts(85,5): error TS2300: Duplicate identifier 'value'.
node_modules/typescript/bin/lib.core.d.ts(86,5): error TS2300: Duplicate identifier 'writable'.
내 tsconfig.json :
{
"compilerOptions": {
"module": "commonjs",
"noImplicitAny": false,
"outDir": "built/",
"sourceMap": true,
"target": "es5"
}
}
내 tsd.json :
{
"version": "v4",
"repo": "borisyankov/DefinitelyTyped",
"ref": "master",
"path": "typings",
"bundle": "typings/tsd.d.ts",
"installed": {
"node/node-0.10.d.ts": {
"commit": "6387999eb899d0ba02d37dd8697647718caca230"
},
"should/should.d.ts": {
"commit": "e1182d56ccb192379eade6055d9ba3fb6a0bacc4"
}
}
}
내 tsd.d.ts :
{
"version": "v4",
"repo": "borisyankov/DefinitelyTyped",
"ref": "master",
"path": "typings",
"bundle": "typings/tsd.d.ts",
"installed": {
"node/node-0.10.d.ts": {
"commit": "6387999eb899d0ba02d37dd8697647718caca230"
},
"should/should.d.ts": {
"commit": "e1182d56ccb192379eade6055d9ba3fb6a0bacc4"
}
}
}
답변
이것은 두 가지의 조합 때문입니다.
-
tsconfig
files
섹션이 없습니다 . 에서 http://www.typescriptlang.org/docs/handbook/tsconfig-json.htmltsconfig.json에 “files”특성이 없으면 컴파일러는 기본적으로 포함 디렉토리 및 서브 디렉토리에 모든 파일을 포함하도록 설정합니다. “files”속성이 지정되면 해당 파일 만 포함됩니다.
-
typescript
npm 의존성 포함 :node_modules/typescript/
이것은 모든typescript
도착이 포함 된다는 것을 의미합니다 ….lib.d.ts
어쨌든 프로젝트에 암시 적으로 포함 되어 있습니다 ( http://basarat.gitbook.io/typescript/content/docs/types/lib.d.ts .html ) 및 NPM 버전의 typescript와 함께 제공되는 것과 충돌합니다.
고치다
목록 중 하나 files
또는 include
명시 적으로 https://basarat.gitbook.io/typescript/docs/project/files.html 🌹
답변
업데이트 : Typings 버전 1.0은 출력 구조를 변경했으며 아래 답변은 1.0 이전 버전과 관련이 있습니다.
타이핑을 사용하고 tsconfig.json에서 제외하는 경우 중복 유형 문제가 발생할 수 있으며 다음과 같은 것이 필요할 수 있습니다.
{
"exclude": [
"typings/browser.d.ts",
"typings/browser",
"node_modules"
]
}
TypeScript와의 통합을 단순화하기 위해 프로젝트에 설치된 모든 입력을 참조하는 두 개의 파일 (types / main.d.ts 및 typings / browser.d.ts)이 생성됩니다 (한 번에 하나만 사용할 수 있음).
따라서 필요한 버전에 따라 “브라우저”또는 “메인”유형 파일을 제외 (또는 포함)해야하지만 둘다는 아닙니다.
이 타이핑 문제 는 더 자세히 설명합니다.
답변
타이핑 폴더 아래에 타이핑을 별도로 설치 한 경우
{
"exclude": [
"node_modules",
"typings"
]
}
답변
문제는 간단하게 해결되었습니다.
node_modules
폴더 삭제npm install
올바른 버전의 모든 패키지를 가져 오기 위해 실행
필자의 경우 새 분기가 다른 노드 모듈 세트를 사용하는 Git 분기를 변경 한 후 문제가 발생했습니다. 이전 지점은 TypeScript v1.8, 새로운 v2.0을 사용하고있었습니다.
답변
나는이 문제에 부딪쳤다. 을 실행했을 때 npm start
중복 식별자 오류가 발생했습니다.
해결책:
프로젝트 루트 폴더에서 다음을 실행하십시오.
rm -r typings
typings install
npm start
모든 것이 잘 작동합니다.
답변
tsconfig.json 파일에서 exclude 옵션을 다음과 같이 사용할 수도 있습니다.
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"declaration": false,
"noImplicitAny": false,
"removeComments": true,
"noLib": false,
"emitDecoratorMetadata": true,
"experimentalDecorators": true
},
"exclude": [
"node_modules"
]
}
답변
내 경우에는 오류가 발생했습니다.
node_modules/@types/es6-promise/index.d.ts (11,15) : 오류 TS2300 : 중복 된 식별자 ‘Promise’.
그리고 나는 @types/es6-promise
package.json에 있었지만 tsconfig
이미와 함께했습니다 target: "es6"
. 그래서 Promise
컴파일 할 때 충돌이 있다고 생각 합니다.
@types/es6-promise
내 package.json
파일 에서 제거 하면 문제가 해결되었습니다.