Typescript: 'any' μœ ν˜•μ€ μƒμ„±μž ν•¨μˆ˜ μœ ν˜•μ΄ μ•„λ‹™λ‹ˆλ‹€.

에 λ§Œλ“  2015λ…„ 09μ›” 01일  Β·  3μ½”λ©˜νŠΈ  Β·  좜처: microsoft/TypeScript

class Thing extends ((function () {
    return null;
})()) {
    doThing() {
    }
}

extends null 라고 λ§ν•˜λŠ” 것은 정말 우회적인 λ°©λ²•μ΄μ§€λ§Œ μœ ν˜•μ΄ μ²΄ν¬μ•„μ›ƒλ˜μ§€ μ•Šμ•„ μ–΄μƒ‰ν•©λ‹ˆλ‹€. 검사기λ₯Ό λ§Œμ‘±μ‹œν‚€λ €λ©΄ StringConstructor 와 같은 더미 ctor μœ ν˜•μœΌλ‘œ IIFE에 주석을 달아야 ν•©λ‹ˆλ‹€.

By Design

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

λ‹€μŒμ€ TypeScript 2.0μ—μ„œ declare module 'swagger-client'; 와 같은 λͺ¨λ“ˆ swagger-clientλ₯Ό μ„ μ–Έν•œ ν₯미둜운 κ²½μš°μž…λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ λ‹€μŒκ³Ό 같이 μ‚¬μš©ν•˜λ €κ³  ν•  λ•Œ

import * as Swagger from 'swagger-client';

class Swagger extends Swagger {
  pet: any;
  constructor() {
    super({ 
      url: config.get('spec.petstore'),
      usePromise: true
    });
  }
}

Type 'any' is not a constructor function type 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€.

λͺ¨λ“  3 λŒ“κΈ€

이것은 μ˜λ„μ μœΌλ‘œ μ„€κ³„λœ κ²ƒμž…λ‹ˆλ‹€. null을 ν™•μž₯ν•˜λŠ” μœ μΌν•œ 지원 ν˜•μ‹μ€ extends null 이며, μœ ν˜•μ— ꡬ성 μ„œλͺ…이 μžˆλŠ” 값을 λ°˜ν™˜ν•΄μ•Ό ν•©λ‹ˆλ‹€. μ—¬κΈ°μ„œλŠ” μ˜λ„ν•œ 것보닀 μ‚¬μš©μž 였λ₯˜μΌ κ°€λŠ₯성이 더 λ†’κΈ° λ•Œλ¬Έμ— 이 μ‹œλ‚˜λ¦¬μ˜€μ—μ„œλŠ” anyλ₯Ό μ™€μΌλ“œμΉ΄λ“œλ‘œ μ œμ™Έν–ˆμŠ΅λ‹ˆλ‹€. 이것이 ν•„μš”ν•œ μ‹€μ œ μ‚¬μš© 사둀가 μžˆλŠ”μ§€ ν™•μΈν•˜λŠ” 것은 ν₯미둜울 κ²ƒμž…λ‹ˆλ‹€.

λ‹€μŒμ€ TypeScript 2.0μ—μ„œ declare module 'swagger-client'; 와 같은 λͺ¨λ“ˆ swagger-clientλ₯Ό μ„ μ–Έν•œ ν₯미둜운 κ²½μš°μž…λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ λ‹€μŒκ³Ό 같이 μ‚¬μš©ν•˜λ €κ³  ν•  λ•Œ

import * as Swagger from 'swagger-client';

class Swagger extends Swagger {
  pet: any;
  constructor() {
    super({ 
      url: config.get('spec.petstore'),
      usePromise: true
    });
  }
}

Type 'any' is not a constructor function type 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€.

λ‹€μŒκ³Ό 같이 인덱슀 νŒŒμΌμ—μ„œ κ°€μ Έμ˜¬ λ•Œ 이 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.

'.'μ—μ„œ {νŒŒμƒ, κΈ°λ³Έ} κ°€μ Έμ˜€κΈ°

νŒŒμƒ ν΄λž˜μŠ€λŠ” κΈ°λ³Έ 클래슀 전에 index.ts에 λ‚˜μ—΄λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

'./Derived'μ—μ„œ {Derived} 내보내기;
'./Base'μ—μ„œ {Base} 내보내기;

λ‚˜λŠ” μˆœμ„œλ₯Ό λ°”κΏ¨κ³  νš¨κ³Όκ°€ μžˆμ—ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰