簡體   English   中英

從聲明文件Typescript中找不到類型

[英]Type not being found from declaration file Typescript

從聲明文件“ dropzone.d.ts”中找不到我的類型“ Dropzone”。

這是聲明文件:

 // Type definitions for Dropzone 4.3.0 // Project: http://www.dropzonejs.com/ // Definitions by: Natan Vivo <https://github.com/nvivo>, Andy Hawkins <https://github.com/a904guy/,http://a904guy.com/,http://www.bmbsqd.com>, Vasya Aksyonov <https://github.com/outring>, Simon Huber <https://github.com/renuo> // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped /// <reference path="../../typings/jquery.d.ts"/> interface DropzoneResizeInfo { srcX?:number; srcY?:number; trgX?:number; trgY?:number; srcWidth?:number; srcHeight?:number; trgWidth?:number; trgHeight?:number; optWidth?:number; optHeight?:number; } interface DropzoneFile extends File { previewElement: HTMLElement; previewTemplate: HTMLElement; previewsContainer: HTMLElement; status: string; accepted: boolean; } interface DropzoneOptions { url?: string; method?: string; withCredentials?: boolean; parallelUploads?: number; uploadMultiple?: boolean; maxFilesize?: number; paramName?: string; createImageThumbnails?: boolean; maxThumbnailFilesize?: number; thumbnailWidth?: number; thumbnailHeight?: number; filesizeBase?: number; maxFiles?: number; params?: {}; headers?: {}; clickable?: boolean|string|HTMLElement|(string|HTMLElement)[]; ignoreHiddenFiles?: boolean; acceptedFiles?: string; renameFilename?(name:string): string; autoProcessQueue?: boolean; autoQueue?: boolean; addRemoveLinks?: boolean; previewsContainer?: boolean|string|HTMLElement; hiddenInputContainer?: HTMLElement; capture?: string; dictDefaultMessage?: string; dictFallbackMessage?: string; dictFallbackText?: string; dictFileTooBig?: string; dictInvalidFileType?: string; dictResponseError?: string; dictCancelUpload?: string; dictCancelUploadConfirmation?: string; dictRemoveFile?: string; dictRemoveFileConfirmation?: string; dictMaxFilesExceeded?: string; accept?(file:DropzoneFile, done:(error?:string|Error) => void):void; init?():void; forceFallback?: boolean; fallback?():void; resize?(file:DropzoneFile):DropzoneResizeInfo; drop?(e:DragEvent):void; dragstart?(e:DragEvent):void; dragend?(e:DragEvent):void; dragenter?(e:DragEvent):void; dragover?(e:DragEvent):void; dragleave?(e:DragEvent):void; paste?(e:DragEvent):void; reset?():void; addedfile?(file:DropzoneFile):void; addedfiles?(files:DropzoneFile[]):void; removedfile?(file:DropzoneFile):void; thumbnail?(file:DropzoneFile, dataUrl:string):void; error?(file:DropzoneFile, message:string|Error, xhr:XMLHttpRequest):void; errormultiple?(files:DropzoneFile[], message:string|Error, xhr:XMLHttpRequest):void; processing?(file:DropzoneFile):void; processingmultiple?(files:DropzoneFile[]):void; uploadprogress?(file:DropzoneFile, progress:number, bytesSent:number):void; totaluploadprogress?(totalProgress:number, totalBytes:number, totalBytesSent:number):void; sending?(file:DropzoneFile, xhr:XMLHttpRequest, formData:FormData):void; sendingmultiple?(files:DropzoneFile[], xhr:XMLHttpRequest, formData:FormData):void; success?(file: DropzoneFile, response: Object|string): void; successmultiple?(files:DropzoneFile[], responseText:string):void; canceled?(file:DropzoneFile):void; canceledmultiple?(file:DropzoneFile[]):void; complete?(file:DropzoneFile):void; completemultiple?(file:DropzoneFile[]):void; maxfilesexceeded?(file:DropzoneFile):void; maxfilesreached?(files:DropzoneFile[]):void; queuecomplete?():void; previewTemplate?: string; } declare class Dropzone { constructor(container:string|HTMLElement, options?:DropzoneOptions); static autoDiscover:boolean; static options:any; static confirm:(question:string, accepted:() => void, rejected?:() => void) => void; static ADDED:string; static QUEUED:string; static ACCEPTED:string; static UPLOADING:string; static PROCESSING:string; static CANCELED:string; static ERROR:string; static SUCCESS:string; files:DropzoneFile[]; enable():void; disable():void; destroy():Dropzone; addFile(file:DropzoneFile):void; removeFile(file:DropzoneFile):void; removeAllFiles(cancelIfNecessary?:boolean):void; processQueue():void; cancelUpload(file:DropzoneFile):void; processFiles(files:DropzoneFile[]):void; processFile(file:DropzoneFile):void; uploadFile(file:DropzoneFile):void; getAcceptedFiles():DropzoneFile[]; getRejectedFiles():DropzoneFile[]; getQueuedFiles():DropzoneFile[]; getUploadingFiles():DropzoneFile[]; accept(file:DropzoneFile, done:(error?:string|Error) => void):void; getActiveFiles():DropzoneFile[]; getFilesWithStatus(status:string):DropzoneFile[]; enqueueFile(file:DropzoneFile):void; enqueueFiles(file:DropzoneFile[]):void; createThumbnail(file:DropzoneFile, callback?:(...args:any[]) => void):any; createThumbnailFromUrl(file:DropzoneFile, url:string, callback?:(...args:any[]) => void):any; on(eventName:string, callback:(...args:any[]) => void):Dropzone; off(eventName:string):Dropzone; emit(eventName:string, ...args:any[]):Dropzone; on(eventName:"drop", callback:(e:DragEvent) => any):Dropzone; on(eventName:"dragstart", callback:(e:DragEvent) => any):Dropzone; on(eventName:"dragend", callback:(e:DragEvent) => any):Dropzone; on(eventName:"dragenter", callback:(e:DragEvent) => any):Dropzone; on(eventName:"dragover", callback:(e:DragEvent) => any):Dropzone; on(eventName:"dragleave", callback:(e:DragEvent) => any):Dropzone; on(eventName:"paste", callback:(e:DragEvent) => any):Dropzone; on(eventName:"reset"):Dropzone; on(eventName:"addedfile", callback:(file:DropzoneFile) => any):Dropzone; on(eventName:"addedfiles", callback:(files:DropzoneFile[]) => any):Dropzone; on(eventName:"removedfile", callback:(file:DropzoneFile) => any):Dropzone; on(eventName:"thumbnail", callback:(file:DropzoneFile, dataUrl:string) => any):Dropzone; on(eventName:"error", callback:(file:DropzoneFile, message:string|Error) => any):Dropzone; on(eventName:"errormultiple", callback:(files:DropzoneFile[], message:string|Error) => any):Dropzone; on(eventName:"processing", callback:(file:DropzoneFile) => any):Dropzone; on(eventName:"processingmultiple", callback:(files:DropzoneFile[]) => any):Dropzone; on(eventName:"uploadprogress", callback:(file:DropzoneFile, progress:number, bytesSent:number) => any):Dropzone; on(eventName:"totaluploadprogress", callback:(totalProgress:number, totalBytes:number, totalBytesSent:number) => any):Dropzone; on(eventName:"sending", callback:(file:DropzoneFile, xhr:XMLHttpRequest, formData:FormData) => any):Dropzone; on(eventName:"sendingmultiple", callback:(files:DropzoneFile[], xhr:XMLHttpRequest, formData:FormData) => any):Dropzone; on(eventName:"success", callback:(file:DropzoneFile) => any):Dropzone; on(eventName:"successmultiple", callback:(files:DropzoneFile[]) => any):Dropzone; on(eventName:"canceled", callback:(file:DropzoneFile) => any):Dropzone; on(eventName:"canceledmultiple", callback:(file:DropzoneFile[]) => any):Dropzone; on(eventName:"complete", callback:(file:DropzoneFile) => any):Dropzone; on(eventName:"completemultiple", callback:(file:DropzoneFile[]) => any):Dropzone; on(eventName:"maxfilesexceeded", callback:(file:DropzoneFile) => any):Dropzone; on(eventName:"maxfilesreached", callback:(files:DropzoneFile[]) => any):Dropzone; on(eventName:"queuecomplete"):Dropzone; emit(eventName:"drop", e:DragEvent):Dropzone; emit(eventName:"dragstart", e:DragEvent):Dropzone; emit(eventName:"dragend", e:DragEvent):Dropzone; emit(eventName:"dragenter", e:DragEvent):Dropzone; emit(eventName:"dragover", e:DragEvent):Dropzone; emit(eventName:"dragleave", e:DragEvent):Dropzone; emit(eventName:"paste", e:DragEvent):Dropzone; emit(eventName:"reset"):Dropzone; emit(eventName:"addedfile", file:DropzoneFile):Dropzone; emit(eventName:"addedfiles", files:DropzoneFile[]):Dropzone; emit(eventName:"removedfile", file:DropzoneFile):Dropzone; emit(eventName:"thumbnail", file:DropzoneFile, dataUrl:string):Dropzone; emit(eventName:"error", file:DropzoneFile, message:string|Error):Dropzone; emit(eventName:"errormultiple", files:DropzoneFile[], message:string|Error):Dropzone; emit(eventName:"processing", file:DropzoneFile):Dropzone; emit(eventName:"processingmultiple", files:DropzoneFile[]):Dropzone; emit(eventName:"uploadprogress", file:DropzoneFile, progress:number, bytesSent:number):Dropzone; emit(eventName:"totaluploadprogress", totalProgress:number, totalBytes:number, totalBytesSent:number):Dropzone; emit(eventName:"sending", file:DropzoneFile, xhr:XMLHttpRequest, formData:FormData):Dropzone; emit(eventName:"sendingmultiple", files:DropzoneFile[], xhr:XMLHttpRequest, formData:FormData):Dropzone; emit(eventName:"success", file:DropzoneFile):Dropzone; emit(eventName:"successmultiple", files:DropzoneFile[]):Dropzone; emit(eventName:"canceled", file:DropzoneFile):Dropzone; emit(eventName:"canceledmultiple", file:DropzoneFile[]):Dropzone; emit(eventName:"complete", file:DropzoneFile):Dropzone; emit(eventName:"completemultiple", file:DropzoneFile[]):Dropzone; emit(eventName:"maxfilesexceeded", file:DropzoneFile):Dropzone; emit(eventName:"maxfilesreached", files:DropzoneFile[]):Dropzone; emit(eventName:"queuecomplete"):Dropzone; } interface JQuery { dropzone(options:DropzoneOptions): Dropzone; } declare module "dropzone" { export = Dropzone; } 

我在網上看到https://github.com/Microsoft/TypeScript/issues/5073,這里聲明文件可能存在問題,特別是我需要添加我嘗試過的“命名空間dropzone {}”。

這是我的app.ts:

 ///<reference path="../../typings/angular.d.ts" /> ///<reference path="../../node_modules/underscore/underscore.d.ts" /> ///<reference path="../../node_modules/dropzone/dropzone.d.ts" /> var underscore = angular.module('underscore', []); import * as Dropzone from "dropzone"; var app = angular.module('App', [ 'ui.router', 'App.common', 'App.home', 'angularSpinners', 'underscore', 'ui.bootstrap' ]); app.directive("dropzone", function(){ return function (scope, element, attrs) { var config, dropzone; config = scope["vm"]["$scope"]["dropzoneConfig"]; // create a Dropzone for the element with the given options window.onload = function() { // access Dropzone here dropzone = new Dropzone(element[0], config.options); // bind the given event handlers angular.forEach(config.eventHandlers, function (handler, event) { dropzone.on(event, handler); }); }; }; }); 

當前錯誤是:“錯誤TS2497:模塊'“ dropzone”'解析為非模塊實體,無法使用此構造導入。 因此,我嘗試將名稱空間(namespace dropzone {})添加到聲明文件中,然后錯誤是相同的。 添加(命名空間Dropzone {})時,編譯時沒有錯誤,但在運行時出現錯誤“未捕獲的ReferenceError:未定義Dropzone”。

任何幫助將非常感謝。

謝謝

如果您不導出默認值,請嘗試以下操作

declare module "modulename" {

  interface A {
      ...somproperties
  }
  class someClass extends someSuperClass{

  }

}

如果默認導出

declare module "modulename" {

  interface A {
      ...somproperties
  }
export default  class someClass extends someSuperClass{

  }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM