앰비언트 선언은 기존 코드에 대한 유형 정보를 제공하는 데 사용됩니다. 예를 들어
, 당신은 타이프에서 다음을 쓴 경우 :
module Example {
export class Test {
do() {
return 'Go';
}
}
}
var test = new Example.
당신은 당신을 돕기 위해 .
후 자동 완성 기능을 얻을 것이라고는 Test
클래스를 발견 할 수 있습니다.
일부 TypeScript 코드에서 사용하고있는 자바 스크립트가 이미있는 경우이 자동 완성 기능을 사용할 수 없으며 입력 부분에서 유형을 인식하지 못합니다. TypeScript에서 전체 JavaScript 파일을 다시 쓰는 대신 대신에 앰비언트 선언을 작성할 수 있습니다.
예를 들어, 다음 자바 스크립트 파일이 훨씬 더 큰 것을 상상 타이프에서 쓰기 다시하는 데 시간이 오래 걸릴 것 :
이
var Example;
(function (Example) {
var Test = (function() {
function Test() {
}
Test.prototype.do = function() {
return 'Go';
};
return Test;
})();
Example.Test = Test;
})(Example || (Example = {}));
주변 선언의 형식 정보를 포함,하지만하지 구현 :
declare module Example {
export class Test {
do() : string;
}
}
이렇게하면 TypeScript에서 모든 것을 다시 쓰지 않아도 JavaScript에 대한 전체 유형 검사 및 자동 완성이 제공됩니다.
언제 이렇게할까요? 대개 타사 JavaScript를 많이 사용할 때 앰비언트 선언을 작성합니다. 라이브러리를 업데이트 할 때마다 TypeScript에서 다시 작성할 수 없기 때문에 앰비언스 선언을 사용하면 영향을 최소화하면서 업데이트를 수행 할 수 있습니다 새로운 기능을 추가해야 할 수도 있지만 구현 세부 사항으로 인해 변경할 필요는 없습니다. 앰비언트 선언은 제 3 자 라이브러리가 수행하는 작업을 설명하는 계약의 역할을합니다.
자세한 내용은 내 guide to writing ambient declarations을 참조하십시오. existing ambient declarations for popular JavaScript libraries on Definitely Typed을 많이 볼 수 있습니다.
또한 몇 가지 일반적인 DefinitelyTyped가 가지고있는 문제를 해결하기 위해 시도하는 프로젝트 "typings"확인하시기 바랍니다 : 또한 읽을 https://github.com/typings/typings 을 "왜의 관리자들 중 하나의 explaing 입력 : "프로젝트 : https://github.com/typings/typings/issues/72 –