Typescript: ์ƒ์„ฑ์ž์— ์˜ํ•œ ์ƒˆ ๊ฐ์ฒด

์— ๋งŒ๋“  2015๋…„ 02์›” 19์ผ  ยท  1๋…ผํ‰  ยท  ์ถœ์ฒ˜: microsoft/TypeScript

๋‹ค์Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
<br i="6"/> TS2351 Cannot use 'new' with an expression whose type lacks a call or construct signature.<br i="7"/>

<br i="10"/> class A {<br i="11"/> constructor() { ... }<br i="12"/> refresh() { return new this.constructor; }<br i="13"/> }<br i="14"/>

new this.constructor๋Š” ์ˆœ์ˆ˜ JS์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ์‚ฌ ํ•ด์š”:)

By Design

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

constructor ์œ ํ˜•์€ ๋ถˆํ–‰ํžˆ๋„ Function ์ž…๋‹ˆ๋‹ค. ๋Œ€์‹  ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

class A { constructor() {  } refresh() { return new (<typeof A>this.constructor); } } 

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

constructor ์œ ํ˜•์€ ๋ถˆํ–‰ํžˆ๋„ Function ์ž…๋‹ˆ๋‹ค. ๋Œ€์‹  ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

class A { constructor() {  } refresh() { return new (<typeof A>this.constructor); } } 
์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰