Definitelytyped: @types/node, ์ปดํŒŒ์ผํ•  ์ˆ˜ ์—†์Œ: node_modules/@types/node/index.d.ts(50,14): ์˜ค๋ฅ˜ TS2687: '๋ฐ˜๋ณต์ž'์˜ ๋ชจ๋“  ์„ ์–ธ์—๋Š” ๋™์ผํ•œ ์ˆ˜์ •์ž๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2017๋…„ 03์›” 10์ผ  ยท  41์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: DefinitelyTyped/DefinitelyTyped

7.0.8๋ถ€ํ„ฐ ์‚ฌ์šฉ ์‹œ

node_modules/@types/node/index.d.ts(50,14): ์˜ค๋ฅ˜ TS2687: '๋ฐ˜๋ณต์ž'์˜ ๋ชจ๋“  ์„ ์–ธ์—๋Š” ๋™์ผํ•œ ์ˆ˜์ •์ž๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ์˜ tsconfig :

{ "compilerOptions": { "target": "es5", "module": "amd", "sourceMap": true, "strictNullChecks": true, "noImplicitAny": false, "noImplicitReturns": true, "noImplicitThis": false, "noUnusedParameters": false, "noUnusedLocals": true, "experimentalDecorators": false, "emitDecoratorMetadata": false, "removeComments": true, "outFile": "../js/ts.js" }, "exclude": [ "node_modules", "../node_modules", "../../node_modules" ] }

@types/node ๋ผ์ธ 50๊ณผ @types/core-js, ๋ผ์ธ 504(๋ฐ˜๋ณต์ž:Symbol) ์‚ฌ์ด์— ์ถฉ๋Œ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

@harrietsCreativeDabblets ํ”„๋กœ์ ํŠธ์˜ devDependencies( ng-start/package.json ์ด๋‚ด)์— ๋‹ค์Œ์„ ํฌํ•จํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

"@types/node": "7.0.7"

์ด ๋งŒ์กฑ ์ด๋ž˜ jspm-config ์ด ๋ฒ„์ „ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค semver @types/node ๋กœ ๊ณ ์ • ์–ป์„ 7.0.7 . ์ด๊ฒƒ์ด jspm-config semver๋ฅผ ์ถฉ์กฑํ•˜์ง€ ์•Š์œผ๋ฉด ์ค‘๋ณต ์ •์˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ package.json์„ ์ˆ˜์ •ํ•œ ํ›„ node_modules ๋ฐ npm i ๋ฅผ ์‚ญ์ œํ–ˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

๋ชจ๋“  41 ๋Œ“๊ธ€

์ €์—๊ฒŒ๋„ ๊ฐ™์€ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. tsconfig:
{ "compilerOptions": { "allowJs": false, "target": "es5", "module": "commonjs", "moduleResolution": "node", "allowSyntheticDefaultImports": true, "emitDecoratorMetadata": true, "experimentalDecorators": true, "sourceMap": true, "noEmitHelpers": true, "noUnusedLocals": true, "noImplicitReturns": true, "noUnusedParameters": true, "baseUrl": ".", "paths": { "app": [ "src/app" ], "app/*": [ "src/app/*" ], "core": [ "src/core" ], "core/*": [ "src/core/*" ] }, "typeRoots": [ "node_modules/@types" ] }, "compileOnSave": false, "buildOnSave": false, "exclude": [ "node_modules" ] }

๋ถ„๋ช…ํžˆ iterator ์•ž์˜ readonly ์ˆ˜์ •์ž๋Š” ์‹ค์ˆ˜์˜€์Šต๋‹ˆ๋‹ค. ๋˜๋Š” core-js๊ฐ€ ์ž˜๋ชป๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ฐ™์€ ๋ฌธ์ œ๋กœ ๋ชจ๋“  ๋นŒ๋“œ๊ฐ€ ๋ฐค์ƒˆ ์ค‘๋‹จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
์šฐ๋ฆฌ์˜ tsconfig

{
  "compilerOptions": {
    "target": "ES5",
    "sourceMap": true,
    "typeRoots": [ "node_modules/@types/" ],
    "noUnusedLocals": true,
    "noUnusedParameters": true,
    "declaration": false,
    "watch": true
  },
  "compileOnSave": true,
  "include": [
    "src/**/*"
  ],
  "exclude": [
    ".vscode",
    "node_modules",
    "dist"
  ]
}

๋˜ํ•œ์ด ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹น๋ถ„๊ฐ„ @types/node ๋ฒ„์ „์„ 7.0.7๋กœ ์ˆ˜์ •ํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ฃผ๋กœ ๋ฌธ์ œ๋ฅผ ์ถ”์ ํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๊ธฐ์— ๊ฒŒ์‹œํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋„ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๊ฒช๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฒƒ์„ ๊นจ๋œจ๋ ธ๋‹ค.

+1 ๊ฐ™์€ ๋ฌธ์ œ.

์—ฌ๊ธฐ์— ์ •ํ™•ํžˆ ๊ฐ™์€ ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€,
์ผ์‹œ์ ์œผ๋กœ 7.0.7์— ๊ณ ์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

+1 ๋™์ผ

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
@types/node": "7.0.7" ๋‹ค์‹œ ์ „ํ™˜ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

์ด์ œ core-js๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  @types/ [email protected] ๋ฐ tsconfig: "lib": ["es7"]์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. @types/node๋กœ ๋‹ค์‹œ ์ „ํ™˜ํ•˜์‹ญ์‹œ์˜ค.": "7.0.7"์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ์ง„ํ–‰ ์ƒํ™ฉ์„ ์ถ”์ ํ•˜๋„๋ก ํ‘œ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

#15108๋กœ ์ˆ˜์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Iterator ์™€ ๊ฐ™์€ ์œ ํ˜•์€ ๋” ์ด์ƒ core-js ์ œ๊ณต๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ tsconfig์—์„œ "lib"๋ฅผ ๋ณ€๊ฒฝํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

@andy-ms "lib"๋ฅผ ๋ฌด์—‡์œผ๋กœ ๋ณ€๊ฒฝํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ œ์•ˆํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

@baywet lib ๋Š” ํ”„๋กœ์ ํŠธ์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‚ด ํ”„๋กœ์ ํŠธ๋Š” ES5๋กœ ์ปดํŒŒ์ผ๋˜์ง€๋งŒ ์ผ๋ถ€ ES6 ๊ธฐ๋Šฅ์„ ํด๋ฆฌํ•„ํ•˜๋ ค๋ฉด core-js ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‚ด lib .

"lib": [
  "es6"
  "dom"
]

์ปดํŒŒ์ผ๋Ÿฌ ์˜ต์…˜ ๋ฌธ์„œ ์—์„œ --lib ๋ฅผ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

@types/node": "7.0.7"์˜ ๋ฒ„์ „์„ ์ •ํ™•ํžˆ ์–ด๋–ค ํŒŒ์ผ๋กœ ๋ณ€๊ฒฝํ•ด์•ผ ํ•˜๋‚˜์š”?
๋””๋ ‰ํ† ๋ฆฌ ๊ฒ€์ƒ‰์„ ํ†ตํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ•ญ๋ชฉ์ด 2๊ฐœ ์žˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

image

์–ด๋Š ๊ฒƒ์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๊นŒ, ์•„๋‹ˆ๋ฉด ๋‘˜ ๋‹ค ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๊นŒ?

๋‘˜ ๋‹ค node_modules ์— ์žˆ์œผ๋ฏ€๋กœ ์ฒดํฌ์ธ๋˜์ง€ ์•Š์•˜์œผ๋ฉฐ ์ง์ ‘ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•˜๋Š” ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ ๋„๊ตฌ(์˜ˆ: npm ๋˜๋Š” jspm )์—๋Š” ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๊ณ  ๋ฒ„์ „์„ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•˜๋Š” ๋ฌธ์„œ ๊ฐ€ ์žˆ์–ด์•ผ
์œ„์˜ ๋…ผ์˜์—์„œ ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด, ๊ทธ๊ฒƒ์€ ๋ชจ๋“  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ตœ์‹  ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹์Šต๋‹ˆ๋‹ค, ๊ทธ๋ฆฌ๊ณ  ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์ • --lib ๋‹น์‹ ์— tsconfig.json .

์ ์ ˆํ•œ ์„ค์น˜๋Š” ์ตœ์‹  ๋ฒ„์ „์„ ์–ป๊ธฐ ์œ„ํ•ด package.json์˜ ์ฒซ ๋ฒˆ์งธ ๋ฌธ์ž๋กœ ^๊ฐ€ ์žˆ๋Š” ๋ฒ„์ „์„ ๊ฐ–๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ์–ธ๊ธ‰๋œ ๊ฒƒ๊ณผ ๊ฐ™์€ ์ผ๋ฐ˜์ ์œผ๋กœ @types ๋ฐ libs ๋ฌธ์ œ์™€ ๊ด€๋ จํ•˜์—ฌ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜๋ฉด ๋จผ์ € ๋ชจ๋“  node_modules ๋””๋ ‰ํ„ฐ๋ฆฌ(์ฃผ ํ”„๋กœ์ ํŠธ ๊ฒฝ๋กœ, ํด๋ผ์ด์–ธํŠธ ๊ฒฝ๋กœ ๋“ฑ)๋ฅผ ์ œ๊ฑฐํ•œ ๋‹ค์Œ ๊ด€๋ จ ๋””๋ ‰ํ„ฐ๋ฆฌ๋งˆ๋‹ค npm install์„ ์ˆ˜ํ–‰ํ•œ ๋‹ค์Œ tsc๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค( ์ผ๋ฐ˜์ ์œผ๋กœ grunt ๋˜๋Š” ๋™๋“ฑํ•œ ๋นŒ๋“œ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  ๊ฒƒ์ด ์ •์ƒ์ธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
์‚ฌ์ „ ํ”„๋กœ๋•์…˜ ๋ฐ ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์—์„œ ๋™์ผํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

@harrietsCreativeDabblets ํ”„๋กœ์ ํŠธ์˜ devDependencies( ng-start/package.json ์ด๋‚ด)์— ๋‹ค์Œ์„ ํฌํ•จํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

"@types/node": "7.0.7"

์ด ๋งŒ์กฑ ์ด๋ž˜ jspm-config ์ด ๋ฒ„์ „ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค semver @types/node ๋กœ ๊ณ ์ • ์–ป์„ 7.0.7 . ์ด๊ฒƒ์ด jspm-config semver๋ฅผ ์ถฉ์กฑํ•˜์ง€ ์•Š์œผ๋ฉด ์ค‘๋ณต ์ •์˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ package.json์„ ์ˆ˜์ •ํ•œ ํ›„ node_modules ๋ฐ npm i ๋ฅผ ์‚ญ์ œํ–ˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

@pe8ter ์ •๋ฐ€ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ตญ @types/ node @

"lib": [
      "dom",
      "dom.iterable",
      "es2015",
      "scripthost"
    ],

์—ฌ๊ธฐ์— ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. 7.0.7 ๋ฒ„์ „ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ๋กœ ํ•ด๊ฒฐ

์—ฌ๊ธฐ์— ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. 7.0.7 ๋ฒ„์ „ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ๋กœ ํ•ด๊ฒฐ

์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋œ ๊ฒƒ ๊ฐ™์ง€ ์•Š๊ณ  ๋ฒ„์ „ 7.0.7์„ ์˜์›ํžˆ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๋…ผ๋ฆฌ์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ฒŒ๋‹ค๊ฐ€ ๋ฒ„์ „์„ ๊ณ ์ •ํ•ด๋„ ์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ด ์Šค๋ ˆ๋“œ์—๋Š” ์•„๋ฌด๊ฒƒ๋„ ์—†์Šต๋‹ˆ๋‹ค.

๋‹น์‹ ์˜ ํƒ€์ดํ”„ ๋ผ์ดํ„ฐ ๋ฒ„์ „์—์„œ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ @loctrice node_modules/typescript/package.json ์—์„œ ๋…ธ๋“œ ๋ฒ„์ „ node_modules/@types/node/package.json ?

typescript๋Š” 2.3.4์ด๊ณ  ๋…ธ๋“œ๋Š” 8.0.5์ž…๋‹ˆ๋‹ค.

@loctrice ํ•ด๋‹น ๋ฒ„์ „์—์„œ๋Š” ์ด๊ฒƒ์„ ์žฌํ˜„ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋นˆ ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๊ณ  ๋ฐฉ๊ธˆ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. tsconfig ๋ฌด์—‡์ด ๋“ค์–ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋‹น์‹ ์€ ์ž‘์€ ์žฌํ˜„์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
๊ทธ๊ฑด ๊ทธ๋ ‡๊ณ , ๋‹น์‹ ์„ ์ฐพ์œผ์‹œ๋Š” 8.0.50 ๋Œ€์‹  8.0.5 ? ๋‘˜ ๋‹ค ํ…Œ์ŠคํŠธํ–ˆ์ง€๋งŒ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๋‚ด tsconfig๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด์ „ ํƒ€์ดํ•‘์—์„œ @types๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•œ ํ›„ ์ด๊ฒƒ์— ๋Œ€ํ•ด

{
"์ปดํŒŒ์ผ๋Ÿฌ ์˜ต์…˜": {
"๋Œ€์ƒ": "es5",
"๋ชจ๋“ˆ": "์‹œ์Šคํ…œ",
"moduleResolution": "๋…ธ๋“œ",
"sourceMap": ๊ฑฐ์ง“,
"emitDecoratorMetadata": ์ฐธ,
"์‹คํ—˜์ ์ธ ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ": true,
"๋Œ“๊ธ€ ์ œ๊ฑฐ": ์ฐธ,
"noImplicitAny": ๊ฑฐ์ง“,
"์œ ํ˜•๋ฃจํŠธ": [
"./node_modules/@types"
],
"lib": [
"es2015",
"es6",
"๋”",
"dom.iterable"
]
},

์„ค์น˜๋œ ๋ฒ„์ „๊ณผ tsconfig.json ์˜ค๋ฅ˜๋ฅผ ์žฌํ˜„ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

  • mkdir ์žฌํ˜„; CD ๋ ˆํ”„๋กœ`
  • ํ•ด๋‹น ๋‚ด์šฉ์„ tsconfig.json์— ๋ถ™์—ฌ๋„ฃ๊ณ  } ๋์— ์ถ”๊ฐ€
  • npm install @types/[email protected] [email protected]
  • echo "" > a.ts
  • node node_modules/typescript/lib/tsc.js
  • ์˜ค๋ฅ˜ ์—†์Œ

์ด๊ฒƒ์€ ๋‚ด๊ฐ€ ๋ฌธ์ œ ํ•ด๊ฒฐ์„ ์‹œ์ž‘ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. ๋‚ด angular2 ํ”„๋กœ์ ํŠธ์—์„œ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ์œ„์น˜๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์”ฉ ์ž…๋ ฅ์„ ์ถ”๊ฐ€ํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋‚ด๊ฐ€ ์„ค์น˜ํ•œ core-js ๋ฐ es6 ์ž…๋ ฅ์œผ๋กœ ์ธํ•ด ๋ฐœ์ƒํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. core-js๋ฅผ ์ œ๊ฑฐํ•˜๋ฉด ์–ด์ œ core-js ๋ฒ„์ „์„ 0.9.35๋กœ ๊ณ ์ •ํ•˜์—ฌ ์ˆ˜์ •ํ•œ "Promise is a type"๊ณผ ๊ฐ™์€ ๊ธฐ๋Šฅ์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋‚ด ํƒ€์ดํ•‘์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ฐจ์ด: "^4.0.4",
core-js: "0.9.35",
๋…ธ๋“œ: "^8.0.50",
์˜คํ”ˆ๋ ˆ์ด์–ด: "^4.1.0",
systemjs: "^0.20.6",

์ถฉ๋Œ์€ 504ํ–‰์˜ core-js์— iterator: symbol ์— ๋Œ€ํ•œ ์ •์˜๊ฐ€ ์žˆ๊ณ  54ํ–‰์˜ ๋…ธ๋“œ ์œ ํ˜•์— readonly iterator: symbol ๋Œ€ํ•œ ์ •์˜๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ˆ˜๋™์œผ๋กœ ์ด๋“ค ์ค‘ ํ•˜๋‚˜๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. match ๋‚ด ํ”„๋กœ์ ํŠธ๊ฐ€ ์ปดํŒŒ์ผ๋ฉ๋‹ˆ๋‹ค.

angular2-electron-boilerplate๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ์ž‘๋™์‹œํ‚ค๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

node_modules/@types/node/index.d.ts(79,14): error TS2687: All declarations of 'iterator' must have identical modifiers.

79     readonly iterator: symbol;
                ~~~~~~~~
phil<strong i="9">@Loki</strong> ~/d/g/s/g/o/angular2-electron-boilerplate (master) [130]> 
grep -rnE 'iterator:\s+symbol' node_modules/
node_modules//@types/node/index.d.ts:79:    readonly iterator: symbol;
node_modules//typescript/lib/lib.es2015.iterable.d.ts:28:    readonly iterator: symbol;
node_modules//typescript/lib/lib.es6.d.ts:4763:    readonly iterator: symbol;
node_modules//reflect-metadata/Reflect.ts:95:    declare const Symbol: { iterator: symbol, toPrimitive: symbol };

๋ฒ„์ „:

@philipbel ์•Œ์•„๋ƒˆ์–ด?

@loctrice๊ฐ€ ์„ค๋ช…ํ•˜๋Š” ๋ฌธ์ œ์— ๋Œ€ํ•œ ์˜๊ตฌ์ ์ธ ์ˆ˜์ • ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์•„๋‹ˆ์š”.

2018๋…„ 1์›” 2์ผ 2์‹œ 11๋ถ„์— Smackzter [email protected]์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

@philipbel ์•Œ์•„๋ƒˆ์–ด?

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ฑฐ๋‚˜ GitHub์—์„œ ๋ณด๊ฑฐ๋‚˜ ์Šค๋ ˆ๋“œ๋ฅผ ์Œ์†Œ๊ฑฐํ•˜์„ธ์š”.

@philipbel reflect-metadata ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‹น์‹ ์€ ์ปดํŒŒ์ผ ๊ฒฐ๊ตญ ํ˜ธ๊ธฐ์‹ฌ ๋ฐฉ๋ฒ• Reflect.ts ๋Œ€์‹  Reflect.d.ts .

@loctrice ๋Š” core-js๋ฅผ ์ˆ˜๋™์œผ๋กœ ํŽธ์ง‘ํ•˜์—ฌ ๋‚ด ํ”„๋กœ์ ํŠธ๋ฅผ ์ปดํŒŒ์ผํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋” ๋‚˜์€ ์†”๋ฃจ์…˜์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@ types/ [email protected]๋กœ ์‹œ๋„ํ•˜๋ฉด ์ž˜ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

@thanhngvpt ์ €๋Š” ์ด ํ”„๋กœ์ ํŠธ์— ๊ธฐ์—ฌํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ์†”๋ฃจ์…˜์„ ์ œ๊ณตํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ฒฐ๊ตญ ๋‚ด ํ”„๋กœ์ ํŠธ์™€ ๋Œ€๋ถ€๋ถ„์˜ ํŒจํ‚ค์ง€๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•ด์•ผ ํ–ˆ๊ณ  ๋ชจ๋“  ๊ฒƒ์ด ๊ดœ์ฐฎ์•„ ๋ณด์˜€์Šต๋‹ˆ๋‹ค.

์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด

npm i [email protected] --save

๋‚ด ๋นŒ๋“œ๋Š” ์–ด๋””์—์„œ ์ค‘๋‹จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค!! ์ด ๋ฌธ์ œ๋Š” ์—ฌ์ „ํžˆ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

๋‚ด ํ™˜๊ฒฝ

Ionic:

   Ionic CLI          : 5.2.3 (C\\\\node_modules\ionic)
   Ionic Framework    : ionic-angular 3.9.5
   @ionic/app-scripts : 3.2.2

Cordova:

   Cordova CLI       : 8.0.0
   Cordova Platforms : android 8.0.0
   Cordova Plugins   : cordova-plugin-ionic-keyboard 2.1.3, cordova-plugin-ionic-webview 4.1.1, (and 20 other plugins)

Utility:

   cordova-res : 0.8.1
   native-run  : 1.0.0

System:

   Android SDK Tools : 26.1.1 (C:\\\\AppData\Local\Android\Sdk)
   NodeJS            : v10.15.3 (C:\Program Files\nodejs\node.exe)
   npm               : 6.4.1
   OS                : Windows 10
Typescript is 2.5

๋„ค, ์ œ๊ฐ€ ํ•˜๋Š” ์ผ์€ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ ๊ฐ™์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚ด tsconfig.json lib ์ •์˜๊ฐ€ ์—†๊ณ  ์ด ์Šค๋ ˆ๋“œ์—์„œ ์ œ๊ณตํ•˜๋Š” ์ •๋ณด์— ์™„์ „ํžˆ ๋‹นํ™ฉํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‚ด tsconfig.json ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.

{
    "compilerOptions": {
        "target": "es6",
        "module": "commonjs",
        "moduleResolution": "node",
        "rootDir": "src",
        "outDir": "out",
        "forceConsistentCasingInFileNames": true,
        "noUnusedLocals": true,
        "noUnusedParameters": true,
        "pretty": true,
        "declaration": true
    }
}

๋‚ด๊ฐ€ ์ œ์–ดํ•  ์ˆ˜ ์—†๋Š” ๋‹ค์Œ ์ปดํŒŒ์ผ๋Ÿฌ ์˜ค๋ฅ˜ ์ƒ์„ฑ์„ ์ค‘์ง€ํ•˜๋ ค๋ฉด ์ •ํ™•ํžˆ ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

node_modules/vscode/vscode.d.ts:534:3 - error TS2687: All declarations of 'textEditor' must have identical modifiers.

534     textEditor: TextEditor;
        ~~~~~~~~~~

node_modules/vscode/vscode.d.ts:8363:3 - error TS2687: All declarations of 'body' must have identical modifiers.

8363    body?: any;
        ~~~~

์ข…์†์„ฑ:

"devDependencies": {
  "@types/node": "^8.10.59",
  "@types/vscode": "^1.1.36",
  "rimraf": "^3.0.0",
  "tslint": "^5.20.1",
  "tslint-config-xo": "^2.0.0",
  "typescript": "^3.7.4",
  "vscode": "^1.1.36"
}

๋‚ด tsconfig.json "skipLibCheck": true ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ์ปดํŒŒ์ผ๋Ÿฌ ์˜ค๋ฅ˜๊ฐ€ ์ œ๊ฑฐ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์‚ฌ์šฉ๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•ด ์œ ํ˜• ๊ฒ€์‚ฌ๋ฅผ ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹์€ ์ƒ๊ฐ์ธ์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

{
    "compilerOptions": {
        "skipLibCheck": true
    }
}
์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰