@types/xxxx
ํจํค์ง๋ฅผ ์ฌ์ฉํด ๋ณด์๋๋ฐ ๋ฌธ์ ๊ฐ ์์์ต๋๋ค.Definitions by:
in index.d.ts
) ๋๋ตํ๋ค.0.9.37 core-js ํจํค์ง์ tsc 2.2.1์ ๋ช ๊ฐ์ง ๋ฌธ์ ๊ฐ ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ง์ ์ปดํ์ผ๋ฌ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. (๊ทธ ์ค ์ผ๋ถ๋ง ๋ฐ์ท)
node_modules/@angular/core/src/facade/lang.d.ts(12,17): error TS2693: 'Map'์ ์ ํ๋ง ์ฐธ์กฐํ์ง๋ง ์ฌ๊ธฐ์๋ ๊ฐ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
node_modules/@angular/core/src/facade/lang.d.ts(13,17): error TS2693: 'Set'์ ์ ํ๋ง ์ฐธ์กฐํ์ง๋ง ์ฌ๊ธฐ์๋ ๊ฐ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
node_modules/@types/core-js/index.d.ts(47,36): ์ค๋ฅ TS2304: 'Iterable' ์ด๋ฆ์ ์ฐพ์ ์ ์์ต๋๋ค.
node_modules/@types/core-js/index.d.ts(350,48): ์ค๋ฅ TS2304: 'PropertyKey' ์ด๋ฆ์ ์ฐพ์ ์ ์์ต๋๋ค.
node_modules/@types/core-js/index.d.ts(351,52): ์ค๋ฅ TS2304: 'PropertyKey' ์ด๋ฆ์ ์ฐพ์ ์ ์์ต๋๋ค.
node_modules/@types/core-js/index.d.ts(352,34): ์ค๋ฅ TS2304: 'PropertyKey' ์ด๋ฆ์ ์ฐพ์ ์ ์์ต๋๋ค.
node_modules/@types/core-js/index.d.ts(353,34): ์ค๋ฅ TS2304: 'PropertyKey' ์ด๋ฆ์ ์ฐพ์ ์ ์์ต๋๋ค.
node_modules/@types/core-js/index.d.ts(354,34): ์ค๋ฅ TS2304: 'PropertyKey' ์ด๋ฆ์ ์ฐพ์ ์ ์์ต๋๋ค.
node_modules/@types/core-js/index.d.ts(355,61): ์ค๋ฅ TS2304: 'PropertyKey' ์ด๋ฆ์ ์ฐพ์ ์ ์์ต๋๋ค.
.....
node_modules/@types/core-js/index.d.ts(2103,41): ์ค๋ฅ TS2339: 'toStringTag' ์์ฑ์ด 'SymbolConstructor' ์ ํ์ ์กด์ฌํ์ง ์์ต๋๋ค.
node_modules/@types/core-js/index.d.ts(2107,41): ์ค๋ฅ TS2339: 'SymbolConstructor' ์ ํ์ 'unscopables' ์์ฑ์ด ์์ต๋๋ค.
node_modules/rxjs/Observable.d.ts(69,60): error TS2693: '์ฝ์'์ ์ ํ๋ง ์ฐธ์กฐํ์ง๋ง ์ฌ๊ธฐ์๋ ๊ฐ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
node_modules/rxjs/operator/toPromise.d.ts(3,79): error TS2693: '์ฝ์'์ ์ ํ๋ง ์ฐธ์กฐํ์ง๋ง ์ฌ๊ธฐ์๋ ๊ฐ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
typescript\shared\login.component.ts(81,62): ์ค๋ฅ TS2339: '์ฐพ๊ธฐ' ์์ฑ์ด '๋จ์[]' ์ ํ์ ์กด์ฌํ์ง ์์ต๋๋ค.
typescript\shared\login.component.ts(81,62): ์ค๋ฅ TS2339: '์ฐพ๊ธฐ' ์์ฑ์ด '๋จ์[]' ์ ํ์ ์กด์ฌํ์ง ์์ต๋๋ค.
0.9.35์์๋ ๋ชจ๋ ๊ฒ์ด ์์๋๋ก ์๋ํฉ๋๋ค.
ts.config๊ฐ es5์์ ef2017๋ก ๋ณ๊ฒฝ๋์ด ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋์ง ๊ถ๊ธํฉ๋๋ค. ๋ค๋ฅธ ๋ณ๊ฒฝ ์ฌํญ์ด ์ด ์์ ์ ์ํํ ์ ์๋ค๋ ๊ฒ์ ์ ๋ง๋ก ์ ์ ์์ต๋๊น?
์ฌ๊ธฐ์๋ ๋ง์ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. (์ด๋ฆ "Promise"๋ฅผ ์ฐพ์ ์ ์์, "Set" ์ด๋ฆ์ ์ฐพ์ ์ ์์, ...)
0.9.36์ผ๋ก ๋๋๋ฆฌ๋ฉด ํ์ฌ ์ด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ฉ๋๋ค.
@andy-ms / @mhegazy
"Definition by"๋ @rbuckton ์ด๋ผ๊ณ
@rbuckton ์ด ์ฑ ์์ด ์๋ ๊ฒฝ์ฐ index.d.ts๋ฅผ ์ฌ๋ฐ๋ฅธ ์ฑ ์์ผ๋ก ์ ๋ฐ์ดํธํ ์ ์์ต๋๊น?
tsconfig์์ --lib
๋ฅผ ์ค์ ํ์ฌ ํ์ํ ์ ์๋ฅผ ์ป์ผ์ญ์์ค.
@andy-ms ์ ๋ typescript ์ปดํ์ผ๋ฌ, ๋ด๋ถ ๋ฐ ์ ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ ๋ฐฉ๋ฒ์ ์ต์ํ์ง ์์ผ๋ฏ๋ก ์ฌ๊ธฐ lib ์น์ ์์ ๋ฌด์์ ์ค์ ํด์ผ ํ ์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์? ์กฐ์ธ ๋ถํ๋๋ฆฝ๋๋ค.
@dozer75 ์ด ๋งํฌ๋ฅผ ํ์ธํ์ญ์์ค: [typescript ์ปดํ์ผ๋ฌ ์ต์ ].(https://www.typescriptlang.org/docs/handbook/compiler-options.html)
tsconfig.json ํ์ผ์ ์์ ํ๋ ๊ฒฝ์ฐ ํฌํจํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ง์ ํ๋ ๋ฌธ์์ด ๋ฐฐ์ด๊ณผ ํจ๊ป lib
์์ฑ์ ์ถ๊ฐํฉ๋๋ค. ์ ๋ฅผ ์ํด ์ ๋ ๋
ธ๋ ์๋ฒ ํ๊ฒฝ์์ @types/core-js๋ฅผ ์ฌ์ฉํ๊ณ ์์์ต๋๋ค(๋์ es5 ์ฌ์ฉ, ์ฆ ์ ํ์
์คํฌ๋ฆฝํธ๋ ํ๋ก๋์
์ ์ํด es5๋ก ์ปดํ์ผ๋๊ณ ์์์ต๋๋ค). ๊ทธ๋์ "es2015"
ํ๊ณ ๋ชจ๋ ๊ฒ์ด ์ ์๋ํ์ต๋๋ค. ๋ธ๋ผ์ฐ์ ํ๊ฒฝ์ ์๋ ๊ฒฝ์ฐ "dom"
์ถ๊ฐํ๋ฉด ํ์ค ์๋ฐ์คํฌ๋ฆฝํธ window
๋ฐ ์ด์ ์ ์ฌํ ํญ๋ชฉ๋ ์ ๊ณต๋ฉ๋๋ค.
์ถ๊ฐํ์ฌ
"lib": ["es2017", "dom"]
tsconfig.json
compilerOptions
์ ์ด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค.
@andy-ms ๊ฐ์ฌํฉ๋๋ค
@DrDanRyan typescript ๋ฌธ์์ ๋ฐ๋ฅด๋ฉด es5๋ฅผ ๋์์ผ๋ก ์ฌ์ฉํ๋ฉด DOM, ES5, ScriptHost๊ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ถ๊ฐ๋ฉ๋๋ค. ๋ฐ๋ผ์ ์ด๊ฒ์ ํ์ํ์ง ์์์ผ ํฉ๋๋ค.
@Narven ์ lib์ es2017์ ์ถ๊ฐํ ๋ core-js ํ์ดํ์ด ๋ ์ด์ ํ์ํ์ง ์์ต๋๋ค. ์ ์ค๋ณต ์๋ณ์๋ฅผ ์ป์ง ๋ชปํ๋์ง ๊ถ๊ธํฉ๋๋ค.
core-js ํ์ดํ์ด ๊ฐ์๊ธฐ ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ธํธ์ ์์กดํ๋ ์ด์ ๊ฐ ์ฝ๊ฐ ํผ๋์ค๋ฝ์ต๋๋ค. ๊ทธ๊ฒ์ ๋์๊ฒ ์ฌ๋ฐ๋ฅธ ํด๊ฒฐ์ฑ ์ฒ๋ผ ๋ณด์ด์ง ์์ต๋๋ค.
@DaSchTour lib ์์ฑ์ ์ง์ ์ง์ ํ์ง ์์ผ๋ฉด lib: ["dom", "es5", "scriptHost"]
๊ฐ ๋์ es5์ ์ฌ์ฉ๋๋ ๊ธฐ๋ณธ๊ฐ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ ์ด๋ ๊ทธ๊ฒ์ด ๋ด๊ฐ ์ดํดํ๋ ๋ฐ์ด๋ฉฐ, ์ด๊ฒ์ด lib: ["es2015", "dom"]
์ง์ ์ง์ ํ ๋ ์ค๋ณต ์๋ณ์๋ฅผ ์ป์ง ๋ชปํ๋ ์ด์ ์
๋๋ค.
๋ํ lib
์ต์
์ ์์กด์ฑ์ด ์๋ @types/core-js
๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋์ฒด ํฉ๋๋ค.
@DrDanRyan ํ์คํ ๋์ฒดํ์ด ์๋๋๋ค ! ES2017์ฉ lib
์๋ @types/core-js
๋ณด๋ค ํจ์ฌ ๋ง์ ๋ด์ฉ์ด ํฌํจ๋์ด core-js๋ก ํด๋ฆฌํ๋์ง ์์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ๋ ์ปดํ์ผ ์ค๋ฅ๋ฅผ ์จ๊น๋๋ค.
๊ทธ๋์ ๋
ธ๋ ์๋ฒ์์ ์๋ํ๋ "es2015"
๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค...
๋ฌธ์ ๋ ์ฌ์ ํ ์กด์ฌํฉ๋๋ค. lib
์๋ core-js
์ด์์ด ํฌํจ๋์ด ์์ผ๋ฏ๋ก core.js์ ๋ํ ์
๋ ฅ์ด lib
"ํ์ฅ"๋์ด์ผ ํ๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค.
๋๋ ์ฐ๋ฆฌ๊ฐ ์ฌ๊ธฐ์ ์๋ก ๊ณผ๊ฑฐ๋ฅผ ์ด์ผ๊ธฐํ๊ณ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ด ๋ง์ lib: ["es2015"]
๋ฅผ tsconfig.json
๋ฃ์ ํ ๋ ์ด์ @types/core-js
๋ฅผ ์ฌ์ฉํ ํ์๊ฐ ์์ผ๋ฏ๋ก ์ ๊ฑฐํ๊ณ ์ด์ ์ปดํ์ผ๋ฌ ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ๋ค๋ ๊ฒ์
๋๋ค.
์ด๋ฅผ PR๊ณผ ๊ต์ฐจ ์ฐ๊ฒฐ: https://github.com/DefinitelyTyped/DefinitelyTyped/pull/15108
lib: ["es2015"]
๋ฃ์ด๋ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์ง ์์์ต๋๋ค.
๋๋ ์์ง๋ ์ป๋๋ค
error TS2693: 'Promise' only refers to a type, but is being used as a value here.
๋๋ ๋ชจ๋ ๊ฒ์ ์ถ๊ฐํ๋ ค๊ณ ์๋ํ์ต๋๋ค.
"lib": [
"es5",
"es2015",
"es2017",
"dom",
"scripthost"
],
์ฌ์ ํ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
์คํจํ ์ฝ๋๋ฅผ ์ ๊ณตํ ์ ์์ต๋๊น?
๋๋ ์ด๊ฒ์ ๋ค์๊ณผ ๊ฐ์ด ํด๊ฒฐํ๋ค.
{
"compilerOptions": {
"target": "es6",
"module": "es6",
...
},
"lib": [
"ES5",
"ES2015",
"DOM",
"ScriptHost"
]
@types/core-js
์ ๊ฑฐ
@dmitriid ๋ ์ด์ ๋ฅผ ๋ชจ๋ฅด์ง๋ง ๋์ผํ lib ๊ฐ์ด ์ ์๊ฒ
์ฌ๊ธฐ ๋ด ์ ์ฒด tsconfig๊ฐ ์์ต๋๋ค.
{
"compilerOptions": {
"target": "es5",
"lib": [
"es5",
"es2015",
"es2017",
"dom",
"scripthost"
],
"module": "commonjs",
"experimentalDecorators": true,
"sourceMap": true
}
}
์๋ง, ๋๋ ๋ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ์๋ ๊ฒ์๋ฌผ์์ ๋ด ์ฐฌ์ฑํ๋ฅผ ๋์ฐพ์์ต๋๋ค.
"lib" ๊ตฌ์ฑ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ ์ ํ ์ฅ๊ธฐ ์๋ฃจ์ ์ ๋๊น, ์๋๋ฉด @types/cores-js๊ฐ ์์ ๋์ด ์ด์ ๊ณผ ๋์ผํ๊ฒ ์ฌ์ฉํ ์ ์์ต๋๊น?
@PrimalZed core-js๋ฅผ ํตํด ์ฌ์ฉํ ์ ์๋ ๊ธฐ๋ฅ์ ๋์ ํ๊ธฐ ๋๋ฌธ์ lib๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ ์ ํ ์๋ฃจ์ ์ด๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ๋ฐ๋ผ์ lib ๋ฐ @types/core-js๋ ๋์ผํ ๋ฉ์๋ ์งํฉ์ ํฌํจํ์ง ์์ผ๋ฉฐ core-js๋ ํญ์ lib๋ณด๋ค ์ ์ ์๋ฅผ ํฌํจํฉ๋๋ค.
@DaSchTour ์๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
X
๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์์ผ๋ฉฐ es6
๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ์๋ฅผ ์ฌ์ฉํ์ฌ ์
๋ ฅ๋ฉ๋๋ค.X
๊ฐ์ ธ์ค๊ธฐ ์ ์ ์ฝ๋์์ core-js
ํด๋ฆฌํ์ ๊ฐ์ ธ์์ต๋๋ค.ํ์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ค์ ํด๋ฆฌํ ๊ตฌํ์ ๋ํด ์๋ฌด๊ฒ๋ ๋ชจ๋ฅด๋ฏ๋ก ํด๋ฆฌํ์ https://github.com/DefinitelyTyped/DefinitelyTyped/issues/15104 ์ ๊ฐ์ ๋ฒ๊ทธ๋ฅผ ํผํ๊ธฐ ์ํด ๋์ผํ ์ ์๋ฅผ ์ ๊ณตํด์ผ ํฉ๋๋ค.
@just-boris ๊ทธ๋ฆฌ๊ณ ํ๋ก์ ํธ Y๊ฐ ์๊ณ core-js๋ฅผ ์ฌ์ฉํ๊ณ es6 lib๋ฅผ ์ฌ์ฉํ์ฌ es5๋ก ์ปดํ์ผํ๋ ๋์ ๊ฐ๋ฐ์๋ ๋ฌธ์์ด์ normalize๋ผ๋ ํจ์๊ฐ ์์์ ์ ์ ์์ต๋๋ค. ์ข์์ ๐ ์ฌ์ฉํด๋ด
์๋ค ๋ฐ๋ก ์ ๊ฐ ์ฐพ๋ ๋ด์ฉ์
๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ช ์ฃผ ํ์ IE11 ๋ฐ Safari 9์์ ํ
์คํธํ ํ TypeScript๋ฅผ ์ฌ์ฉํ์ฌ ํผํ๊ณ ์ถ์๋ ์ด์ํ ์ค๋ฅ๋ฅผ ๋ฐ๊ฒฌํ์ต๋๋ค ๐ค
์ ๊ทธ๋ฆฌ๊ณ ๊ฐ์๊ธฐ IE11์์ ES5์ ํจ๊ป ํ๋ก์๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ฉ์ง!
๋ฐ๋ผ์ polyfill์ ๋ฒ๊ทธ๋ฅผ ํผํ๊ณ ์์ ํ ์ฌ์ฉ์ ํ์ฉํ๊ธฐ ์ํด ES6์ ๋ํ ์์ ํ 100% ์ง์์ ๊ตฌํํด์ผ ํฉ๋๋ค. 100%, 99,999%๋ lib๊ฐ ํด๋ฆฌํ(polyfill)๋์ง ์์ ๊ธฐ๋ฅ์ ๋ํ๋ด๋ฏ๋ก ๋ ์ ์ต๋๋ค. ๊ทธ๋ผ ๋ฐ์ด๋ฐ์ด core-js ๐ข
๊ฒฐ๊ตญ @types/ core-js @
"lib": [
"dom",
"dom.iterable",
"es2015",
"scripthost"
],
์ถ๊ฐํ์ฌ
"lib": ["es2017", "dom"]
tsconfig.json์ ๋ด compilerOptions์ ์ด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค.
@Narven ๊ฐ์ฌ
@just-boris ๊ทํ์ ์๊ฒฌ์ ์ ์๊ฒ ํจ๊ณผ์ ์ด์์ต๋๋ค, ty!
"target es5"์์ ์๋ํ๋ ค๋ฉด ์ด๊ฒ์ด ํ์ํฉ๋๋ค. lib๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ํดํน์ด๊ณ ์ ์ฒด์ ์ผ๋ก ๋์ ๋์๊ฐ ๋ฉ๋๋ค.
์ ์๋ ๋ฐฉ๋ฒ์ @types/core-js๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ธ๋ฐ, ๋ถํํ๋ ๋ค์๊ณผ ๊ฐ์ ๊ฐ๋จํ ์ฝ๋์์๋ ์๋ํ์ง ์์ต๋๋ค.
let p = Promise.resolve( [ 1, 2, 3 ] );
p.then( function( v ) {
console.log( v[ 2 ] ); // 1
} );
@andy-ms / @mhegazy
๊ฐ๋ฅํ๋ค๋ฉด #15108์ ์ด ๊ธ์ ๋ค์ ํ๋ฉดํํ๊ณ ์ถ์ต๋๋ค.
Typescript ์ ์ ํ์ผ์ ์์ ์ ํจํค์ง๊ฐ ์ ๊ณตํ๋ ๊ฒ์ ์ค๋ช ํ๋ ๊ฒ์ด ์๋๋๊น? ์ ์๋ ํ๊ฒฝ์ด ์๋๋ผ ํจํค์ง์ ๋ํด ์ ํํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ํนํ core-js๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ, ์๋ฅผ ๋ค์ด import 'core-js'์ ๊ฐ์ด ๋๊ตฐ๊ฐ๊ฐ ๊ทธ๊ฒ์ ์ฌ์ฉํ๊ณ ์๋ค๋ฉด, ๊ทธ๋ค์ด ํ๊ฒฝ์ ์ฌ๋ฐํ๊ณ ์๊ธฐ ๋๋ฌธ์ ๊ทธ๋ ๊ฒ ํ ์ ์์ต๋๋ค. ๊ทธ๋ ์ฃ ?
์ฌ๋๋ค์ด ํ์ ์ ์๋ฅผ ์ฌ์ฉํ๋ ์ค์ํ ์ด์ ๋ ๋ฐํ์์ด ์๋ ์ปดํ์ผ ์๊ฐ์ ๋ฌธ์ ๋ฅผ ๋๋ฌ๋ด๊ธฐ ์ํด์์
๋๋ค. core-js
์ ์๊ฐ es2015/es2016/es2017์ ๋ํ ์๋ฒฝํ ํด๋ฆฌํ์ ์ ๊ณต ํ์ง ์๊ธฐ ๋๋ฌธ์ core-js
๊ฐ ๊ตฌ์ฒด์ ์ผ๋ก ์ํํ๋ ์์
์ ๋ํ๋ด๋ ๊ฒ์ด ์ค์ ๋ก ๋งค์ฐ ์ค์ ํฉ๋๋ค. ํนํ core-js
์ ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ฒฝ์ฐ ํ๊ฒฝ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฐ ๋ณ๋์ ๋ฌธ์ ๊ฐ ๋์ด์ผ ํ๋ ์ด์ ์
๋๋ค. ์ฆ, ํด๋ฆฌํ์ด ํ์ค๊ณผ ์ผ์นํ์ง ์์ ์ ์์ต๋๋ค.
์ด์ ๊ฐ์ ๋ณ๊ฒฝ์ผ๋ก ์ธํด ํ๋ก์ ํธ ๊ฐ์ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ ์์ฑํ๋ ๊ฒ์ ์ฌ๊ธฐ์์ ์ค๋ช ํ๋ ๊ฒ์ฒ๋ผ ๊ฐ๋ณ๊ฒ ๋ณผ ์ ์์ต๋๋ค. ์ฒซ์งธ, @types ํจํค์ง ์ ๊ทธ๋ ์ด๋์ ์ํฅ์ ์ถ์ ํ๋ ๊ฒ์
tsconfig.json
๋ค์์ ์ถ๊ฐํ์ฌ ์ปดํ์ผ ์ค๋ฅ๋ฅผ ์์ ํ ์ ์์์ต๋๋ค.
"target": "es5",
"lib": ["es2015", "dom"]
์ด ์๋ฃจ์ ์์ ์ ๋ง ์ด๋ฆฌ์์ ์ ์ "dom"์ ํฌํจํ์ง ์์ผ๋ฉด Promise๊ฐ ์ฌ์ฉ๋ ๋ TypeScript๊ฐ ์ค๋ฅ๋ฅผ ์ผ์ผํค๊ฒ ๋๋ค๋ ๊ฒ์ ๋๋ค.
๋น๋๊ฐ ์ ๋๋ก ์ค์ ๋์ง ์์ ๊ฒฝ์ฐ์๋ ์ด๋ฌํ ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
gulp + gulp-typescript๋ฅผ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ tsconfig.json์ ๊ณ ๋ คํ๋๋ก typescript ๋น๋ ํ๋ก์ธ์ค๋ฅผ ์ค์ ํ์ง ์์์ต๋๋ค.
๊ทธ๋์ ์ด๊ฒ์ ์๋ํ์ญ์์ค:
gulp.task('typescript', function () {
var tsProject = ts.createProject(`${sourceRoot}/tsconfig.json`);
return gulp.src([`${sourceRoot}/**/*.ts`])
.pipe(tsProject())
.pipe(gulp.dest(`${destinationRoot}`));
});
์ด๊ฒ์ ์ฌ๋๋ค์ ๋ค๋ฅธ ์๋ต๊ณผ ํจ๊ป ๋์์ด ๋ ์ ์์ต๋๋ค :์ค๋ง์ผ:
์ถ๊ฐํ์ฌ
"lib": ["es2015", "dom"]
tsconfig.json์ ๋ด compilerOptions์ ์ด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค.
@elusive ๊ฐ ์ง์ ๋ ๊ฐ์ผ๋ก ๋ด tsconfig.json
"lib" ์์ฑ์ ์ถ๊ฐํ๋ ๊ฒ๊ณผ ๊ฐ์ด ์ปดํ์ผ ๋ฌธ์ ๊ฐ ์์ ๋์์ต๋๋ค.
๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ ํดํน์ฒ๋ผ ๋ณด์ ๋๋ค.
๋ ๊นจ๋ํ ์๋ฃจ์ ์ด ์์ต๋๊น?
์ด ๋ฌธ์ ๋ก ์ด์ด์ง ๋ณ๊ฒฝ ์ฌํญ์ด ๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ์ ์ ์ถ๋์๋ค๋ ์ธ์์ ๋ฐ์์ต๋๋ค. ํ ๋ถ๋ถ์ tsconfig.json์ ๋ณ๊ฒฝํ๊ณ ๋ค๋ฅธ ๋ถ๋ถ์ ํ์ดํ ๋ฒ์ ์ ์ด์ ๋ฆด๋ฆฌ์ค๋ก ์ค์ ํ์ต๋๋ค.
@DaSchTour์ : ๊ทธ๊ฒ์์ ๋ํ ์๋ฅผ ๋ค์ด ๋จ์ง์ด๊ธฐ ๋๋ฌธ์ ๋ด ๊ฒฝ์ฐ์๋ ๋ด๊ฐ tsconfig.json์ ํธ๋ฆญ์ ์ฌ์ฉ Frint
๊ทธ๋ฌ๋ ์ค์ ํ๋ก์ ํธ์ ๊ฒฝ์ฐ ์ค์ ์๋ฃจ์ ์ ์ฐพ์์ผ ํฉ๋๋ค. core-js๋ฅผ ์ ๋ฐ์ดํธํ๊ณ ์์ ํ ์ ์์ต๋๊น?
๋๋ ์ต์ ๋ชจ๋ ๊ฒ์ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ lib
์์ ์ค ์ด๋ ๊ฒ๋ ์ ์๊ฒ ํจ๊ณผ๊ฐ ์์์ต๋๋ค :(
์ด ์ค๋ฅ๋ ํ์๋ฉ๋๋ค. ๋ชจ๋ ๊ฒ์ ์์์ํค์ง๋ ์์ง๋ง ์ปดํ์ผ ์ ์์ ๋นจ๊ฐ ์ ์ ๋ณด๋ ๊ฒ์ด ์ง์ฆ๋ฉ๋๋ค.
๊ทธ๋ค์ ๋ค์๊ณผ ๊ฐ์ด ์ฌ๋ผ์ง๋๋ค.
"target": "es5"
...
"lib": ["es5","dom","scripthost","es2015"]
๊ธฐ์ ์ ์ผ๋ก ์ค๋ฅ๋ "lib": ["es2015","dom"]
๋ก ์ฌ๋ผ์ก์ง๋ง TS ์ปดํ์ผ๋ฌ ์ต์
์ ๋ณด๋ฉด es5
๋์์ ๋ํ ๊ธฐ๋ณธ lib ์ฃผ์
์ "es5", "dom","scripthost"
์ด๊ณ ์ ๋ ' ๊ธฐ๋ณธ๊ฐ์ ์๊ณ ์ถ์ง ์์ต๋๋ค.
๊ทธ๋ฌ๋ ์ด ๋ณ๊ฒฝ์ผ๋ก lib
์ต์
์ ์ถ๊ฐํ๊ธฐ ์ ๊ณผ ๋น๊ตํ์ฌ ๋ด ํ๋ก๊ทธ๋จ ์๋ต์์ ์๋นํ ์ง์ฐ/๋ฒ๊ทธ๋ฅผ ๋ฐ๊ฒฌํ์ฌ ์ ๊ฑฐํ์ต๋๋ค. ์ด์ ๋ํ ์ง์ ํ ํด๊ฒฐ์ฑ
์ ๊ต์ฅํ ๊ฒ์
๋๋ค!
์ฐธ๊ณ ๋ก, NG2๋ฅผ ์๋์ํค๋ ค๊ณ ํ ๋ ์ด๋ฌํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ Angular CLI๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๋ฌํ ๋ชจ๋ ๋ฌธ์ ๊ฐ ์ฌ๋ผ์ง๋๋ค.
Angular CLI๊ฐ ์์ฑํ๋ tsconfig๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
"compileOnSave": false,
"compilerOptions": {
"outDir": "wwwroot/js/out-tsc",
"baseUrl": "src",
"sourceMap": true,
"declaration": false,
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es5",
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2016",
"dom"
]
}
์ฌ๊ธฐ์ ์ฐ์ฌ์ง ๋ชจ๋ ๋ด์ฉ์ ๋ด ์๊ฐ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์๋๋ผ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด๊ธฐ ๋๋ฌธ์ ์ค๋ซ๋์ ์ด๊ฒ์ ์ด์ด ๋์์ต๋๋ค.
์ด๊ฒ์ ์ ์ ํจํค์ง ์์ฒด์์ ํด๊ฒฐ๋ ๊ฒ์ด ์๋๊ฐ?
๋ค๋ฅธ ์ํ๋ก, tsconfig์ lib ํญ๋ชฉ์ ์ถ๊ฐํ๋ฉด ์๋ํ์ง๋ง ์ด ํจํค์ง๋ฅผ ๋ถํ์ํ๊ฒ ๋ ๋๋งํฉ๋๋ค. lib(์ด์จ๋ ์ํํด์ผ ํจ)๋ฅผ ์ค์ ํ์ฌ ์ฒ๋ฆฌํ ์ ์๋ค๋ฉด ์ด ํจํค์ง๊ฐ ์ ํ์ํฉ๋๊น?
๋ด ์๋ฃจ์ ์ ๋ด ts.config์ lib: [ "es2015", "dom" ]์ ์ถ๊ฐํ๋ ๊ฒ์ด์์ผ๋ฉฐ lib ํญ๋ชฉ์ ์ถ๊ฐํ ๋ ํ์ํ์ง ์์๊ธฐ ๋๋ฌธ์ ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ ๊ฑฐํ์ต๋๋ค.
์ด ํจํค์ง์ ์์ ์๊ฐ ์ด๊ฒ์ผ๋ก ์๋ฌด ๊ฒ๋ ํ๊ณ ์ถ์ง ์์ ๊ฒฝ์ฐ. ๋ชจ๋ ์ฌ๋์ด ๋ฌด์์ ํด์ผ ํ๋์ง ์ ์ ์๋๋ก ์ฌ๋ฐ๋ฅด๊ฒ ์ํํ๋ ์ด์ ์ ๋ฐฉ๋ฒ์ ๋ํ ์ค๋ช ์ผ๋ก ์ด ๋ฌธ์ ๋ฅผ ์ข ๋ฃํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ด ์๋ฃจ์ ์ Windows ์์คํ ์์ ์ ์๊ฒ ํจ๊ณผ์ ์ด์์ต๋๋ค.
"lib": ["es2017", "dom"]
tsconfig.json์ ๋ด compilerOptions์ ์ด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค.
@andy-ms ๊ฐ์ฌํฉ๋๋ค
@Jtreu ์ด ์ฃผ์ ์ ๋ํ ๊ฟ๊บฝ ๊ฟ๊บฝ ๊ฟ๊บฝ ํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
์ด ํ๋ก์ ํธ์ ์์ ๋ถ๋ถ์์ ๋ฌธ์ ์์ต๋๋ค.
https://github.com/toni-rmc/laravel-angular-integration
๊ทํ์ ์๋ต์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
์ฌ๋ฐ๋ฅธ ํ์์ผ๋ก ๋กค๋ฐฑํ๊ธฐ ์ํด PR์ ์ ์ถํ์ต๋๋ค: https://github.com/DefinitelyTyped/DefinitelyTyped/pull/19531
@dozer75 @ctlong @DaSchTour @rajinder- yadav @jackTheRipper
์๋ฅผ ๋ค์ด, core-js
์๋ ES6 ๊ธฐํธ๋ง shimmingํ๋ es5
, dom
, es2015.symbol
์ฌ์ผ ํฉ๋๋ค.
๋ด ํด์์ด ๋ง๋์ง ๋๊ฐ ํ์ธํ ์ ์์ต๋๊น? ๊ฐ์ฌ ํด์!
/cc @andy-ms
@cvsguimaraes ๋ง์ต๋๋ค.
์ด๊ฑฐ ์์ง๋ ๊ณ ์ฅ๋ฌ์ด? 0.9.43์์ error TS2304: Cannot find name 'PropertyKey'.
๋ฑ์ ๋ฐ๊ณ ์์ต๋๋ค.
์
๋ฐ์ดํธ: ์ ๊ฒฝ ์ฐ์ง ๋ง์ธ์. tsc priotractor.ts
์ ๊ฐ์ ๋ช
๋ น์ค์์ ์ปดํ์ผํ ์์ค ํ์ผ์ ์ ๊ณตํ๋ฉด `tsconfig.xml ํ์ผ์ ์ฝ์ง ๋ชปํ๊ฒ ๋ฉ๋๋ค. ๋ด๊ฐ ์ปดํ์ผํ๋ ค๋ ํ์ผ ํ๋๋ง ํฌํจํ๋ ๊ฐ๋๊ธฐ ํ
์คํธ์ฉ์ผ๋ก ์ tsconfig ํ์ผ์ ๋ง๋ค์์ผ๋ฉฐ ์ง๊ธ์ ์ ์๋ํฉ๋๋ค.
๋๊ตฐ๊ฐ์๊ฒ ๋์์ด๋๋ค๋ฉด ์ฌ๊ธฐ ๋ด ๊ตฌ์ฑ์ด ์์ต๋๋ค.
{
"compileOnSave": false,
"compilerOptions": {
"baseUrl": ".",
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es5",
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2016",
"dom"
]
},
"files": [
"./config/protractor.config.ts"
]
}
๋ค๋ฅธ ์ฌ๋์ด ๋ด ์ค์์์ ๋ฐฐ์ธ ์ ์๋ ๊ฒฝ์ฐ. ์ฌ๋ฐ๋ฅธ ๋๋ ํ ๋ฆฌ์์ tsconfig.json์ ํธ์งํ๊ณ ์๋์ง ํ์ธํ์ญ์์ค!
๋ง์ ๋จธ๋ฆฌ๋ฅผ ๋ถ๋ช์น ํ VSCode์์ ์ฐ root/src์ ๊ตฌ์ฑ ๋์ ํ๋ก์ ํธ ๋ฃจํธ์ ๊ตฌ์ฑ์ ํธ์งํ๊ณ ์์์ ์์์ต๋๋ค. ๊ถ์ฅ ์ฌํญ์ ๋ณ๊ฒฝํ ํ ์๋ํฉ๋๋ค.
TypeScript๋ฅผ v2.6.1๋ก ์ ๋ฐ์ดํธํ๊ณ VS Code์ฉ ๋ฒ์ ์ผ๋ก ์ค์ ํ๋ฉด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค.
@IAMtheIAM์ด ๊ณ ์ณค ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
์ฌ๊ธฐ์ ๋์ด๋ ๋๋ถ๋ถ์ compilerOptions
์ค์ ์ ์๋ํ์ง๋ง ๋ฉฐ์น ๋์ ๊ฑฐ์ ์ฑ๊ณตํ์ง ๋ชปํ์ต๋๋ค. ์ ์ฅ, ๋ด OS์์ typescript ํจํค์ง๊น์ง ์
๊ทธ๋ ์ด๋ํ์ต๋๋ค!
์ด ์๋ฃจ์
์ ์๊ณ ๋๋ฌด ์ฌ์ ๋ค ๋์ TS ํ์ผ์ ํต๊ณผํ์ง tsc
์ง์ , ์คํ๋ ค ๊ทธ๋ค์ ์ง์ tsconfig.json
๊ทธ๋ฅ ์ ํ tsc
.
@shybovycha ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ํ ๋ฌธ์๋ ํ์ผ์ ๋ช ๋ น์ ์ง์ ์ ๋ฌํ ์ ์๊ณ ์ ๋ฌํ ์ ์์ด์ผ ํ๋ค๊ณ ์ง์ ํฉ๋๋ค. ์ด ๋ฏธ๋ '์์ '์ด ์์ผ๋ฉด ์ฌ์ ํ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ๋ค์ ๋ฒ์ ์ด ์์ต๋๋ค.
"@types/core-js": "2.5.0"
"core-js": "2.5.7"
"typescript": "3.1.6"
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ถ๊ฐํ์ฌ
tsconfig.json
compilerOptions
์ ์ด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค.@andy-ms ๊ฐ์ฌํฉ๋๋ค