Typescript: ๊ณต์šฉ์ฒด ์œ ํ˜•์„ ์‚ฌ์šฉํ•  ๋•Œ ES6 getter ์†์„ฑ์ด ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

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

TypeScript ๋ฒ„์ „ :

์•ผ๊ฐ„ (1.9.0-dev.20160217)

์•”ํ˜ธ

class Example {
  get foo() {
    return true;
  }

  baz(example: Example) {
    example.foo;
  }

  bar(example: Example | Object) {
    example.foo; // error TS2339: Property 'foo' does not exist on type 'Example | Object'.
  }
}

์˜ˆ์ƒ๋˜๋Š” ๋™์ž‘ :

example.foo ๋Š” ๋‘ ๋ฐฉ๋ฒ• ๋ชจ๋‘์—์„œ ์˜ค๋ฅ˜๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์‹ค์ œ ํ–‰๋™ :

example.foo example ์ด Example | Object ๋•Œ example

error TS2339: Property 'foo' does not exist on type 'Example | Object'.
Question

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

์ด๊ฒƒ์€ .foo ๊ฐ€ ์—†์„ ์ˆ˜๋„์žˆ๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ๋‹น์‹ ์„ ๋ณดํ˜ธํ•˜๋Š” TypeScript์˜ ์ •์ƒ์ ์ธ ๋™์ž‘์ž…๋‹ˆ๋‹ค.

์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด .foo ๊ฐ€ ํฌํ•จ ๋œ ํ•ญ๋ชฉ์œผ๋กœ ์œ ํ˜• ์„

class Example {
  get foo() {
    return true;
  }

  baz(example: Example) {
    example.foo;
  }

  bar(example: Example | Object) {
    if (example instanceof Example) {
      example.foo;
    }
  }
}

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

์ด๊ฒƒ์€ .foo ๊ฐ€ ์—†์„ ์ˆ˜๋„์žˆ๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ๋‹น์‹ ์„ ๋ณดํ˜ธํ•˜๋Š” TypeScript์˜ ์ •์ƒ์ ์ธ ๋™์ž‘์ž…๋‹ˆ๋‹ค.

์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด .foo ๊ฐ€ ํฌํ•จ ๋œ ํ•ญ๋ชฉ์œผ๋กœ ์œ ํ˜• ์„

class Example {
  get foo() {
    return true;
  }

  baz(example: Example) {
    example.foo;
  }

  bar(example: Example | Object) {
    if (example instanceof Example) {
      example.foo;
    }
  }
}
์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰