programing

각 2 typescript 주변 상황에서 구현을 선언할 수 없습니다.

procenter 2023. 7. 9. 22:33
반응형

각 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

반응형