Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

@types/core-js conflicts with typescript/lib/lib.es6.d.ts when @types/core-js is not actually used #11700

Closed
plantain-00 opened this issue Oct 4, 2016 · 12 comments
Labels

Comments

@plantain-00
Copy link
Contributor

A simple reproduce repository: https://github.com/plantain-00/test , after npm i && npm run build, the error is:

node_modules/@types/core-js/index.d.ts(21,14): error TS2300: Duplicate identifier 'PropertyKey'.
node_modules/typescript/lib/lib.es6.d.ts(4133,14): error TS2300: Duplicate identifier 'PropertyKey'.

Expected: no error, because the app.ts is empty. the @types/core-js is used in static/app.ts.

  "devDependencies": {
    "@types/core-js": "^0.9.34",
    "core-js": "^2.4.1",
    "typescript": "^2.0.3"
  }
@vvakame vvakame added the @types label Oct 6, 2016
@aciccarello
Copy link
Contributor

What part of core-js is needed that isn't included in lib.es6? Couldn't you simply not install @types/core-js?

@plantain-00
Copy link
Contributor Author

@aciccarello core-js and @types/core-js is used by frontend in static/app.ts, this part works well

There are 2 tsconfig.json, one for backend(es6, error happens here), and the other one for frontend(es5, no error, works well),

@jefbarn
Copy link
Contributor

jefbarn commented Oct 17, 2016

@plantain-00 Did you figure this out?
I'm having a similar issue, where I want to use some of the non-standard features of core-js (Dictionaries), but the types conflict with typescripts library.

@plantain-00
Copy link
Contributor Author

@jefbarn For non-standard features, I have no solution.
For standard features, I uninstalled @types/core-js, and removed import "core-js";, because core-js is polyfills of ES2015+, so I can use typescript/lib/lib.es6.d.ts instead, the tsconfig.json looks like:

{
    "compilerOptions": {
        "module": "commonjs",
        "target": "es5",
        "lib": [
            "es2015",
            "es5",
            "dom",
            "scripthost"
        ]
    }
}

It seems this issue is still needed, I will reopen this.

@plantain-00 plantain-00 reopened this Oct 17, 2016
@anorborg
Copy link

anorborg commented Nov 2, 2016

I am having this issue using @types\core-js and targeting ES6

@jefbarn
Copy link
Contributor

jefbarn commented Nov 2, 2016

@anorborg I did get my situation working using something like this:

  "compilerOptions": {
    "module": "commonjs",
    "target": "es6",
    "moduleResolution": "node",
    "lib": ["es5", "dom"],
    ...
  }

@anorborg
Copy link

anorborg commented Nov 2, 2016

@jefbarn that did work. Basically the the core-js and typescript 2.x es6.d.ts libs are conflicting and that is telling typescript to not use its es6.d.ts. I think the more pure solution is to create some module type definitions for core-js (i.e core-js-es6-object) instead of including the entire core-js definition. I tried to start this locally, but couldn't get local custom types to work. If I have time I will try to figure it out and create a PR for all of the modules.

@wyqydsyq
Copy link

Bump for attention.

I just created a new project with tsc 2.2.0 using this ts config:

{
  "compilerOptions": {
    "outDir": "./build/",
    "rootDir": "./src/",
    "baseUrl": ".",
    "sourceMap": true,
    "noImplicitAny": false,
    "module": "commonjs",
    "target": "es6"
  },
  "include": [
    "./src/**/*.ts"
  ],
  "compileOnSave": false
}

Which would produce these errors:

node_modules/@types/core-js/index.d.ts(21,14): error TS2300: Duplicate identifier 'PropertyKey'.
node_modules/@types/core-js/index.d.ts(85,5): error TS2687: All declarations of 'name' must have identical modifiers.
node_modules/@types/core-js/index.d.ts(145,5): error TS2403: Subsequent variable declarations must have the same type.  Variable '[Symbol.unscopables]' must be of type '{ copyWithin: boolean; entries: boolean; fill: boolean; find: boolean; findIndex: boolean; keys: ...', but here has type 'any'.
node_modules/@types/core-js/index.d.ts(262,5): error TS2687: All declarations of 'flags' must have identical modifiers.
node_modules/@types/core-js/index.d.ts(276,5): error TS2687: All declarations of 'EPSILON' must have identical modifiers.
node_modules/@types/core-js/index.d.ts(311,5): error TS2687: All declarations of 'MAX_SAFE_INTEGER' must have identical modifiers.
node_modules/@types/core-js/index.d.ts(318,5): error TS2687: All declarations of 'MIN_SAFE_INTEGER' must have identical modifiers.
node_modules/@types/core-js/index.d.ts(457,5): error TS2403: Subsequent variable declarations must have the same type.  Variable '[Symbol.toStringTag]' must be of type '"Symbol"', but here has type 'string'.
node_modules/@types/core-js/index.d.ts(457,5): error TS2687: All declarations of '[Symbol.toStringTag]' must have identical modifiers.
node_modules/@types/core-js/index.d.ts(464,5): error TS2687: All declarations of 'prototype' must have identical modifiers.
node_modules/@types/core-js/index.d.ts(492,5): error TS2687: All declarations of 'hasInstance' must have identical modifiers.
node_modules/@types/core-js/index.d.ts(498,5): error TS2687: All declarations of 'isConcatSpreadable' must have identical modifiers.
node_modules/@types/core-js/index.d.ts(504,5): error TS2687: All declarations of 'iterator' must have identical modifiers.
node_modules/@types/core-js/index.d.ts(510,5): error TS2687: All declarations of 'match' must have identical modifiers.
node_modules/@types/core-js/index.d.ts(516,5): error TS2687: All declarations of 'replace' must have identical modifiers.
node_modules/@types/core-js/index.d.ts(522,5): error TS2687: All declarations of 'search' must have identical modifiers.
node_modules/@types/core-js/index.d.ts(528,5): error TS2687: All declarations of 'species' must have identical modifiers.
node_modules/@types/core-js/index.d.ts(534,5): error TS2687: All declarations of 'split' must have identical modifiers.
node_modules/@types/core-js/index.d.ts(540,5): error TS2687: All declarations of 'toPrimitive' must have identical modifiers.
node_modules/@types/core-js/index.d.ts(546,5): error TS2687: All declarations of 'toStringTag' must have identical modifiers.
node_modules/@types/core-js/index.d.ts(552,5): error TS2687: All declarations of 'unscopables' must have identical modifiers.
node_modules/@types/core-js/index.d.ts(609,5): error TS2403: Subsequent variable declarations must have the same type.  Variable '[Symbol.toStringTag]' must be of type '"Math"', but here has type 'string'.
node_modules/@types/core-js/index.d.ts(609,5): error TS2687: All declarations of '[Symbol.toStringTag]' must have identical modifiers.
node_modules/@types/core-js/index.d.ts(613,5): error TS2403: Subsequent variable declarations must have the same type.  Variable '[Symbol.toStringTag]' must be of type '"JSON"', but here has type 'string'.
node_modules/@types/core-js/index.d.ts(613,5): error TS2687: All declarations of '[Symbol.toStringTag]' must have identical modifiers.
node_modules/@types/core-js/index.d.ts(628,5): error TS2687: All declarations of 'size' must have identical modifiers.
node_modules/@types/core-js/index.d.ts(634,5): error TS2687: All declarations of 'prototype' must have identical modifiers.
node_modules/@types/core-js/index.d.ts(645,5): error TS2687: All declarations of 'size' must have identical modifiers.
node_modules/@types/core-js/index.d.ts(651,5): error TS2687: All declarations of 'prototype' must have identical modifiers.
node_modules/@types/core-js/index.d.ts(656,11): error TS2428: All declarations of 'WeakMap' must have identical type parameters.
node_modules/@types/core-js/index.d.ts(664,27): error TS2344: Type 'K' does not satisfy the constraint 'object'.
node_modules/@types/core-js/index.d.ts(665,53): error TS2344: Type 'K' does not satisfy the constraint 'object'.
node_modules/@types/core-js/index.d.ts(666,5): error TS2687: All declarations of 'prototype' must have identical modifiers.
node_modules/@types/core-js/index.d.ts(680,5): error TS2687: All declarations of 'prototype' must have identical modifiers.
node_modules/@types/core-js/index.d.ts(692,5): error TS2687: All declarations of 'value' must have identical modifiers.
node_modules/@types/core-js/index.d.ts(804,5): error TS2687: All declarations of 'prototype' must have identical modifiers.
node_modules/typescript/lib/lib.es6.d.ts(4199,14): error TS2300: Duplicate identifier 'PropertyKey'.

Changing the target to es5 results in a clean build.

I'm not sure how this issue has recieved so little attention; surely many people are trying to target ES6 with TS and would also run into this?

@jefbarn
Copy link
Contributor

jefbarn commented Feb 14, 2017

@wyqydsyq core.js and ES6 both define a lot of the same definitions. Either don't include @types/core.js or set "lib": ["es5", "dom"], in your tsconfig

@Sagar1990
Copy link

Sagar1990 commented Nov 14, 2017

I am also getting the similar kind of conflict.

1>c:\Program Files (x86)\Microsoft SDKs\TypeScript\2.6\lib.es2015.iterable.d.ts(203,11): error TS2300: Build:Duplicate identifier 'Promise'.
1>c:\Program Files (x86)\Microsoft SDKs\TypeScript\2.6\lib.es2015.promise.d.ts(223,13): error TS2300: Build:Duplicate identifier 'Promise'.
1>c:\Program Files (x86)\Microsoft SDKs\TypeScript\2.6\lib.es2015.symbol.wellknown.d.ts(168,11): error TS2300: Build:Duplicate identifier 'Promise'.
1>c:\Program Files (x86)\Microsoft SDKs\TypeScript\2.6\lib.es5.d.ts(1292,11): error TS2300: Build:Duplicate identifier 'Promise'.
1>c:\users\username\node_modules@types\es6-promise\index.d.ts(11,15): error TS2300: Build:Duplicate identifier 'Promise'.
1>c:\users\username\node_modules@types\es6-promise\index.d.ts(42,19): error TS2300: Build:Duplicate identifier 'Promise'.

tsconfig: -

{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"lib": [ "es2015", "dom" ],
"noImplicitAny": true,
"suppressImplicitAnyIndexErrors": true,
"noStrictGenericChecks": true
}
}

Package.Json:


{
  "name": "angular-quickstart",
  "version": "1.0.0",
  "description": "QuickStart package.json from the documentation, supplemented with testing support",
  "scripts": {
    "build": "tsc -p src/",
    "build:watch": "tsc -p src/ -w",
    "build:e2e": "tsc -p e2e/",
    "serve": "lite-server -c=bs-config.json",
    "serve:e2e": "lite-server -c=bs-config.e2e.json",
    "prestart": "npm run build",
    "start": "concurrently \"npm run build:watch\" \"npm run serve\"",
    "pree2e": "npm run build:e2e",
    "e2e": "concurrently \"npm run serve:e2e\" \"npm run protractor\" --kill-others --success first",
    "preprotractor": "webdriver-manager update",
    "protractor": "protractor protractor.config.js",
    "pretest": "npm run build",
    "test": "concurrently \"npm run build:watch\" \"karma start karma.conf.js\"",
    "pretest:once": "npm run build",
    "test:once": "karma start karma.conf.js --single-run",
    "lint": "tslint ./src/**/*.ts -t verbose"
  },
  "keywords": [],
  "author": "",
  "license": "MIT",
  "dependencies": {
    "@angular/common": "~4.3.4",
    "@angular/compiler": "~4.3.4",
    "@angular/core": "~4.3.4",
    "@angular/forms": "~4.3.4",
    "@angular/http": "~4.3.4",
    "@angular/platform-browser": "~4.3.4",
    "@angular/platform-browser-dynamic": "~4.3.4",
    "@angular/router": "~4.3.4",
    "angular-in-memory-web-api": "~0.3.0",
    "systemjs": "0.19.40",
    "core-js": "^2.4.1",
    "rxjs": "5.0.1",
    "zone.js": "^0.8.4"
  },
  "devDependencies": {
    "concurrently": "^3.2.0",
    "lite-server": "^2.2.2",
    "typescript": "2.6.0",
    "canonical-path": "0.0.2",
    "tslint": "^3.15.1",
    "lodash": "^4.16.4",
    "jasmine-core": "~2.4.1",
    "karma": "^1.3.0",
    "karma-chrome-launcher": "^2.0.0",
    "karma-cli": "^1.0.1",
    "karma-jasmine": "^1.0.2",
    "karma-jasmine-html-reporter": "^0.2.2",
    "protractor": "~4.0.14",
    "rimraf": "^2.5.4",
    "@types/node": "^6.0.46",
    "@types/jasmine": "2.5.36"
  },
  "repository": {}
}

npm 5.5.1
node 8.9.1

Any workaround?

@uazure
Copy link

uazure commented Sep 28, 2018

had the similar issue. Added "skipLibCheck": true to compilerOptions in my tsconfig.json and than helped

@veenaadevi
Copy link

Hi

./node_modules/@types/core-js/index.d.ts:1461:36 - error TS2339: Property 'for' does not exist on type 'SymbolConstructor'.

1461 const _for: typeof core.Symbol.for;
~~~

../node_modules/@types/core-js/index.d.ts:1465:43 - error TS2339: Property 'hasInstance' does not exist on type 'SymbolConstructor'.

1465 const hasInstance: typeof core.Symbol.hasInstance;
~~~~~~~~~~~

../node_modules/@types/core-js/index.d.ts:1469:50 - error TS2339: Property 'isConcatSpreadable' does not exist on type 'SymbolConstructor'.

1469 const isConcatSpreadable: typeof core.Symbol.isConcatSpreadable;
~~~~~~~~~~~~~~~~~~

../node_modules/@types/core-js/index.d.ts:1477:38 - error TS2339: Property 'keyFor' does not exist on type 'SymbolConstructor'.

1477 const keyFor: typeof core.Symbol.keyFor;
~~~~~~

../node_modules/@types/core-js/index.d.ts:1481:37 - error TS2339: Property 'match' does not exist on type 'SymbolConstructor'.

1481 const match: typeof core.Symbol.match;
~~~~~

../node_modules/@types/core-js/index.d.ts:1485:39 - error TS2339: Property 'replace' does not exist on type 'SymbolConstructor'.

1485 const replace: typeof core.Symbol.replace;
~~~~~~~

../node_modules/@types/core-js/index.d.ts:1489:38 - error TS2339: Property 'search' does not exist on type 'SymbolConstructor'.

1489 const search: typeof core.Symbol.search;
~~~~~~

../node_modules/@types/core-js/index.d.ts:1493:39 - error TS2339: Property 'species' does not exist on type 'SymbolConstructor'.

1493 const species: typeof core.Symbol.species;
~~~~~~~

../node_modules/@types/core-js/index.d.ts:1497:37 - error TS2339: Property 'split' does not exist on type 'SymbolConstructor'.

1497 const split: typeof core.Symbol.split;
~~~~~

../node_modules/@types/core-js/index.d.ts:1501:43 - error TS2339: Property 'toPrimitive' does not exist on type 'SymbolConstructor'.

1501 const toPrimitive: typeof core.Symbol.toPrimitive;
~~~~~~~~~~~

../node_modules/@types/core-js/index.d.ts:1505:43 - error TS2339: Property 'toStringTag' does not exist on type 'SymbolConstructor'.

1505 const toStringTag: typeof core.Symbol.toStringTag;
~~~~~~~~~~~

../node_modules/@types/core-js/index.d.ts:1509:43 - error TS2339: Property 'unscopables' does not exist on type 'SymbolConstructor'.

1509 const unscopables: typeof core.Symbol.unscopables;
~~~~~~~~~~~

../node_modules/@types/core-js/index.d.ts:2272:36 - error TS2339: Property 'for' does not exist on type 'SymbolConstructor'.

2272 const _for: typeof core.Symbol.for;
~~~

../node_modules/@types/core-js/index.d.ts:2276:43 - error TS2339: Property 'hasInstance' does not exist on type 'SymbolConstructor'.

2276 const hasInstance: typeof core.Symbol.hasInstance;
~~~~~~~~~~~

../node_modules/@types/core-js/index.d.ts:2280:50 - error TS2339: Property 'isConcatSpreadable' does not exist on type 'SymbolConstructor'.

2280 const isConcatSpreadable: typeof core.Symbol.isConcatSpreadable;
~~~~~~~~~~~~~~~~~~

../node_modules/@types/core-js/index.d.ts:2288:38 - error TS2339: Property 'keyFor' does not exist on type 'SymbolConstructor'.

2288 const keyFor: typeof core.Symbol.keyFor;
~~~~~~

../node_modules/@types/core-js/index.d.ts:2292:37 - error TS2339: Property 'match' does not exist on type 'SymbolConstructor'.

2292 const match: typeof core.Symbol.match;
~~~~~

../node_modules/@types/core-js/index.d.ts:2296:39 - error TS2339: Property 'replace' does not exist on type 'SymbolConstructor'.

2296 const replace: typeof core.Symbol.replace;
~~~~~~~

../node_modules/@types/core-js/index.d.ts:2300:38 - error TS2339: Property 'search' does not exist on type 'SymbolConstructor'.

2300 const search: typeof core.Symbol.search;
~~~~~~

../node_modules/@types/core-js/index.d.ts:2304:39 - error TS2339: Property 'species' does not exist on type 'SymbolConstructor'.

2304 const species: typeof core.Symbol.species;
~~~~~~~

../node_modules/@types/core-js/index.d.ts:2308:37 - error TS2339: Property 'split' does not exist on type 'SymbolConstructor'.

2308 const split: typeof core.Symbol.split;
~~~~~

../node_modules/@types/core-js/index.d.ts:2312:43 - error TS2339: Property 'toPrimitive' does not exist on type 'SymbolConstructor'.

2312 const toPrimitive: typeof core.Symbol.toPrimitive;
~~~~~~~~~~~

../node_modules/@types/core-js/index.d.ts:2316:43 - error TS2339: Property 'toStringTag' does not exist on type 'SymbolConstructor'.

2316 const toStringTag: typeof core.Symbol.toStringTag;
~~~~~~~~~~~

../node_modules/@types/core-js/index.d.ts:2320:43 - error TS2339: Property 'unscopables' does not exist on type 'SymbolConstructor'.

2320 const unscopables: typeof core.Symbol.unscopables;
~~~~~~~~~~~

This is the error i am getting

my tsconfig
{
"compileOnSave": false,
"compilerOptions": {
"baseUrl": "",
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"downlevelIteration": true,
"experimentalDecorators": true,
"module": "es6",
"moduleResolution": "node",
"importHelpers": true,
"target": "es5",
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es5",
"es2015",
"es2017",
"dom",
"scripthost"
],
},
"angularCompilerOptions": {
"fullTemplateTypeCheck": true,
"strictInjectionParameters": true
}
}
help me to solve the issue

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

9 participants