모듈 내에서 전역 변수 호출


248

Projects.ts부트 스트랩 플러그인에 선언 된 전역 변수를 참조하고 싶은 typescript 파일이 bootbox.js있습니다.

bootboxTypeScript 클래스 내에서 호출 된 변수에 액세스하고 싶습니다 .

가능합니까?


3
bootbox에 대한 DefinitelyTyped 정의가 있습니다. nuget.org/packages/bootbox.TypeScript.DefinitelyTyped
ThisGuy

답변:


404

컴파일러에게 선언되었다고 알려줘야합니다.

declare var bootbox: any;

더 나은 유형 정보가 있으면 대신 대신 추가 할 수 있습니다 any.


5
실제로 ': any'비트를 건너 뛸 수 있습니다.
Oleg Mihailik

37
Q & A 형식에 대한 좋은 예는 아니지만 특정 유형 정보를 추가 할 것을 제안하고 대답은 방법과 위치를 보여줍니다.
Fenton

14
우리는 초보자를 위해 타이핑을 declare합니까?
밥 혼

이것이 글로벌 기능에도 좋은 솔루션입니까? 같은 것을 배치 declare var myFunction: any;?
jonathanrz

1
당신이 지금까지 그 이동하려면 예를 @jonathanrz, 그것은 예를 들어, 너무 특정 서명을 할 수 있습니다declare var myFunction: (input: string) => void;
펜톤

47

이미 모르는 사람들을 위해 다음 과 같이 declare진술서를 외부에 배치해야 class합니다.

declare var Chart: any;

@Component({
  selector: 'my-component',
  templateUrl: './my-component.component.html',
  styleUrls: ['./my-component.component.scss']
})

export class MyComponent {
    //you can use Chart now and compiler wont complain
    private color = Chart.color;
}

에서 TypeScript당신이에서 유래되지 못한 변수를 정의 할 위치를 선언 키워드를 사용하는 TypeScript파일을.

컴파일러에게 런타임 에이 변수가 값을 가질 것이라는 것을 알고 있으므로 컴파일 오류가 발생하지 않습니다.


15

그것이 참조하지만 변경하지 않는 것이면 다음을 사용하십시오 const.

declare const bootbox;

12

Sohnee 솔루션은 더 깨끗하지만 시도해 볼 수도 있습니다

window["bootbox"]

3

전체 프로젝트에서이 변수에 대한 참조를 원하면 d.ts파일을 작성 하십시오 (예 :) globals.d.ts. 다음과 같이 전역 변수 선언으로 채우십시오.

declare const BootBox: 'boot' | 'box';

이제 다음과 같이 프로젝트의 어느 곳에서나 참조 할 수 있습니다.

const bootbox = BootBox;

다음은 입니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.