각 2 typescript 주변 상황에서 구현을 선언할 수 없습니다.
나는 타자 스크립트에 익숙하지 않고 각도 2 지시어를 위한 함수를 만들려고 노력 중입니다.Gulp로 컴파일할 때 오류가 무엇인지 n00bs 언어로 설명할 수 있는 사람이 있습니까?
환경 컨텍스트에서 구현을 선언할 수 없습니다.
이 메시지는 다음에 적용됩니다.offset()
그리고.toggler()
.
import { Directive, ElementRef, Input } from '@angular/core';
@Directive({
selector: 'offCanvas',
inputs: ['target', 'toggle', 'placement', 'autohide', 'recalc', 'disableScrolling', 'modal', 'canvas', 'exclude'],
host: {
'(click)': 'Click()'
}
})
export class OffCanvas {
@Input('target') target: string;
@Input('canvas') canvas: string;
@Input('state') state: string;
@Input('exclude') exclude: string;
@Input('placement') placement: string;
@Input('toggle') toggle: boolean;
@Input('autohide') autohide: boolean;
@Input('recalc') recalc: boolean;
@Input('disableScrolling') disableScrolling: boolean;
@Input('modal') modal: boolean;
public offset() {
switch (this.placement) {
case 'left':
case 'right': return (<HTMLElement>document.querySelector(this.target)).offsetWidth
case 'top':
case 'bottom': return (<HTMLElement>document.querySelector(this.target)).offsetHeight
}
}
public toggler() {
if (this.state === 'slide-in' || this.state === 'slide-out') return
this[this.state === 'slid' ? 'hide' : 'show']()
}
Click() {
this.toggler()
}
}
환경 컨텍스트에서 구현을 선언할 수 없습니다.
파일 이름은 다음과 같습니다.foo.d.ts
대신에foo.ts
그러면 선언 파일로 표시됩니다(https://basarat.gitbooks.io/typescript/content/docs/types/ambient/d.ts.html) 에 더 나와 있으며 다른 곳에 존재하는 논리를 선언할 때 논리를 넣을 수 없습니다).
이 비정상적인 컴파일 시간 Types 스크립트 오류를 우연히 발견했습니다.error TS1183: An implementation cannot be declared in ambient contexts.
소스 코드를 복사/붙여넣은 후 시작되었습니다.export declare class
로 변경했을 때 알아차렸습니다.export class
이 오류가 사라졌습니다.
변경 내용:
export declare class Foo {
}
대상:
export class Foo {
}
나는 그것을 고쳤습니다: npm install rxjs.
제가 node_modules에 있는 파일 중 하나를 실수로 편집했기 때문에 이런 일이 일어난 것 같습니다.이것이 저를 위해 해결했습니다.
rm -r node_modules
npm install
동일한 오류가 발생하여 다음을 입력하여 수정했습니다.
npm install --save typescript@latest
꾸러미json은 이제 최신 ts 버전을 가지고 있고 ts 컴파일러는 2.2.2입니다.
오류 TS1183: 환경 컨텍스트에서 구현을 선언할 수 없습니다.해결 방법: 노드 모듈을 제거했다가 다시 설치합니다.
저는 이 문제에 직면해 있었습니다.constructor
실행.그래서 기본적으로, 우리는 구현을 피해야 합니다.{...}
클래스를 정의하는 동안.
이 대신:
declare module MyModlue {
class MyClass {
constructor(type: string) {
// implementation
};
}
}
제가 한 일은:
declare module MyModlue {
class MyClass {
constructor(type: string); // notice that it doesn't have implementation
}
}
언급URL : https://stackoverflow.com/questions/37448491/angular-2-typescript-an-implementation-cannot-be-declared-in-ambient-contexts
'programing' 카테고리의 다른 글
피어 종속성을 선택적으로 설정하려면 어떻게 해야 합니까? (0) | 2023.07.09 |
---|---|
프로그램 파일 x86 env 변수를 가져오는 방법은 무엇입니까? (0) | 2023.07.09 |
오라클 저장 프로시저 내에서 다른 사용자의 테이블 액세스 (0) | 2023.07.09 |
'헤드 분리' 커밋을 마스터로 되돌리는 방법 (0) | 2023.07.09 |
Maven spring boot run 디버깅과 인수 (0) | 2023.03.16 |