export declare class Actions에서 declare는 무엇을 합니까?
ㅇㅇㅇㅇ가 하죠?declare
★★★★★★★★★★★★★★★★★★?
export declare class Actions {
...
}
찾고 있던 것을 찾았습니다.
선언 vs. 변수
var
는 새 변수를 만듭니다. declare
변수가 다른 곳에 작성되었음을 TypeScript에 알리기 위해 사용합니다.「 」를 사용하고 declare
자바스크립트이것은 컴파일러에 대한 힌트일 뿐입니다.
를 들어, 「」를 정의하는 .var externalModule
, 을합니다.declare var externalModule
에 TypeScript가 있음을 externalModule
되어 있습니다.
이것을 이해하려면 , 우선 「declare」키워드를 이해할 필요가 있습니다.
다음은 Gil Fink의 블로그에서 설명하는 좋은 내용입니다.
TypeScript declare 키워드는 TypeScript 파일에서 생성되지 않았을 수 있는 변수를 선언하기 위해 사용합니다.
예를 들어 TypeScript 선언 파일이 없고 글로벌 네임스페이스에 myLibrary라는 이름 공간이 있는 myLibrary라는 라이브러리가 있다고 가정합니다.이 라이브러리를 TypeScript 코드로 사용하려면 다음 코드를 사용할 수 있습니다.
declare var myLibrary;
TypeScript 런타임에서 myLibrary 변수에 부여하는 유형은 any 유형입니다.여기서의 문제는 디자인 타임의 변수에는 인텔리센스가 없지만 코드로 라이브러리를 사용할 수 있다는 것입니다.declare 키워드를 사용하지 않고 동일한 동작을 하는 또 다른 옵션은 다음과 같은 유형의 변수만 사용하는 것입니다.
var myLibrary: any;
두 코드 예제 모두 동일한 JavaScript 출력을 생성하지만 선언 예제는 읽기 쉽고 주변 선언을 나타냅니다.
따라서 "declare" 키워드를 이해한 후 검색어를 찾을 수 있는 곳으로 돌아가십시오.
export declare class Action{
...
}
클래스의 실제 실장은 아마 다른 장소에 있을 것입니다.아마 .js 파일일 겁니다.
declare
다음 중 하나:
declare
typescript 키워드는 선언이 다른 곳(외부 Javascript 파일 또는 런타임 환경의 일부에 작성됨)에서 정의되었음을 타이프스크립트 컴파일러에 알릴 때 유용합니다.
다른 곳에 foo라는 변수가 있다고 칩시다.그런 다음 변수를 참조하려고 하면 타이프스크립트 컴파일러가 오류를 발생시킵니다.
foo = 'random'; // Error: 'foo' is not defined
는 「 」를 할 수 .declare
★★★★★★★★★★★★★★★★★★:
declare var foo: string;
foo = 'random'; // no error anymore
이로 인해 다음과 같은 결과가 발생합니다.
foo
실제로 다른 곳에서는 선언되지 않았으며 런타임 오류가 발생할 수 있는 변수를 사용하려고 합니다. '우리'만.declare
키워드를 지정합니다.- 타입을 알고 있기 때문에, (잠재적으로는) IDE Intellisense에 액세스 할 수 있습니다.
- 타입을 알고 있기 때문에 타입스크립트 컴파일러는 컴파일 시에 타입을 체크할 수 있어 특정 시나리오에서 잘못된 타입을 사용하고 있는지 여부를 경고할 수 있습니다.
이 경우 declare 키워드는 다음과 같습니다.
export declare class Actions {
...
}
...는 쓸모가 없는 것 같습니다만, TypeScript는 이것을 에러로 하는 것을 검토해야 한다고 생각합니다(숨겨진 이유가 있는지는 모르겠습니다).클래스를 선언하면 가져올 필요가 없습니다.다른 사용자가 가져올 것으로 예상하여 클래스를 내보내는 경우 선언할 필요가 없습니다.또한 이 클래스를 선언하기 때문에 이 클래스를 가져올 필요 없이 사용할 수 있어야 합니다.그러나 클래스 선언을 내보낼 때는 그렇지 않습니다.사용하려면 Import해야 합니다.
TL;DR
export declare class Actions {
...
}
와 같다
declare class Actions {
...
}
declare
키워드 키워드 없음 - 에 의해 으로 선택되는 선언 모듈(TypeScript 에 Import " export " - TypeScript " 。이것은 레거시 모듈(TypeScript 정의 없이 설치된 npm 패키지)에 입력을 추가하는 데 유용한 기능입니다.
import
export
모듈을 올바르게 사용하는 방법이며, 모든 것을 수동으로 Import(좀 지루하게 느껴집니다)해야 합니다.논리든 정의든 어느 쪽이든 상관없습니다.
사례로 【적인용활 as as as】export declare
를 사용하면 모든 서브패킷을 내보내지 않아도 됩니다.하다
export declare namespace Redux {
namespace Store {
interface Definition { ... }
}
}
다음 중 어느 쪽이 읽기 쉬울 수 있습니까?
export namespace Redux {
export namespace Store {
export interface Definition { ... }
}
}
는 두 Import).import { Redux } from 'definitions/redux';
때 할 점은, 이 항목을 하는 것입니다.import
★★★★★★★★★★★★★★★★★」export
에, 「모듈」이 됩니다.declare
을 사용하다
PS, 버그가 있습니다(문제 16671).const enum
에 대해 에서 (redex type)를 했습니다.transpileOnly
flag(create-react-app-typescript 패키지가 하는 것, 그래서 알고 있습니다), 열거형은 인라인으로 표시되지 않습니다!뛰어들 수도 있고 아닐 수도 있지만 미리 알아두면 도움이 됩니다!
언급URL : https://stackoverflow.com/questions/35019987/what-does-declare-do-in-export-declare-class-actions
'prosource' 카테고리의 다른 글
asp.net asmx 웹 서비스가 json 대신 xml을 반환함 (0) | 2023.02.12 |
---|---|
각도 작성동적 모듈 집합이 있는 JS 앱 (0) | 2023.02.12 |
여기서 woocommerce 순서는 wordpress 데이터베이스에 배치됩니다. (0) | 2023.02.12 |
기본 옵션이 있는 AngularJS Directive (0) | 2023.02.12 |
wordpress에서 id로 게시물 존재 여부 (0) | 2023.02.12 |