>

아약스 호출을 포함하는 함수가있는 자바 스크립트 파일이 있습니다. 내 typescript-file에서 해당 함수를 호출하려고합니다. 나는 타입을 선언하지 않았기 때문에 추측하고 있지만 어떻게 작성 해야할지 모르겠습니까?

유형 선언을 추가하려고했지만 Visual Studio에서 여전히 getJsonNoCache 에 대해 불평합니다. . 오류가 발생합니다

와이즈 비즈

내 웹 사이트에 번들로 포함 된 자바 스크립트 파일입니다.

"Error TS2339 (TS) Property 'getJsonNoCache' does not exist on type '{ postJson(url: string, command: any, onSuccess?: any, onError?: any): void; getJson(url: string, query: any, onSuccess?: any, onError?: any): void; }'."

내 ts 파일에 함수를 호출하려고하는 함수가 있습니다.

scp.network.getJsonNoCache = function(url, query, onSuccess, onError, statusCodeEvents) {
  $.ajax({
    contentType: 'application/json; charset=utf-8',
    type: "GET",
    url: url,
    data: query,
    cache: false,
    statusCode: {
      401: function() {
        window.location = '/';
      },
      405: function() {
        rfq.mainModel.errorHeader('Information');
      }
    },
    success: function(data) {
      if (onSuccess !== undefined)
        onSuccess(data);
    },
    error: function(data) {
      if (onError !== undefined) {
        onError(data);
      }
    },
    dataType: "json",
  });
};

this.getUsers = (callback: any, text: string) => { if (text.length < 2) { callback([]); return; } scp.network.getJsonNoCache(audit.queries.GET_INTERNAL_USERS, { searchText: text, maxCount: 10, roleId: 5 }, function(data: any) { this.queriedUsers = data.users; console.log(data.users); callback(_.map(this.queriedUsers, function(user: any) { return user.name; })); }); };

  • 답변 # 1

    가장 쉬운 방법은 scp.network 를 주장하는 것입니다   any 유형으로  트랜스포머가 scp.network 의 속성 검사를 건너 뛰도록하려면 :

    (scp.network as any).getJsonNoCache(...)
    
    

    더 정확하게 입력하고 싶다면 declare  scp의 유형 :

    declare var scp: {
      network: {
        getJsonNoCache: (
          url: string,
          query: Record<string, string | number>,
          onSuccess?: (data: any) => void,
          onError?: (error: any) => void,
        ) => void;
      };
    };
    
    
    위의 코드는 TypeScript 트랜스 필러에게 런타임에 전역 변수 scp 가 있음을 알려줍니다.  트랜스 필러는 선언에서 말하고 유형의 정확성을 확인할 수 있습니다.

  • 이전 entity framework core - 일대 다 관계 - 자식 대신 플래그가 수정 됨
  • 다음 jquery - AJAX 쿼리에서 반환되는 JSON 요소에 액세스하는 방법