peitschie commented on PR #588: URL: https://github.com/apache/cordova-plugin-file/pull/588#issuecomment-1654877663
Unfortunately, a rename is not enough here. With this change in place, my test set (https://github.com/peitschie/cordova-plugin-file-type-tests) still sees this problem when your change here is applied. ``` index.ts:15:37 - error TS2345: Argument of type '(value: FileSystem | PromiseLike<FileSystem>) => void' is not assignable to parameter of type '(fileSystem: FileSystemCordova) => void'. Types of parameters 'value' and 'fileSystem' are incompatible. Type 'FileSystemCordova' is not assignable to type 'FileSystem | PromiseLike<FileSystem>'. Type 'FileSystemCordova' is not assignable to type 'FileSystem'. The types of 'root.createReader().readEntries' are incompatible between these types. Type '(successCallback: (entries: Entry[]) => void, errorCallback?: ((error: FileError) => void) | undefined) => void' is not assignable to type '(successCallback: FileSystemEntriesCallback, errorCallback?: ErrorCallback | undefined) => void'. Types of parameters 'successCallback' and 'successCallback' are incompatible. Types of parameters 'entries' and 'entries' are incompatible. Type 'Entry[]' is not assignable to type 'FileSystemEntry[]'. Type 'Entry' is not assignable to type 'FileSystemEntry'. Types of property 'getParent' are incompatible. Type '(successCallback: (entry: Entry) => void, errorCallback?: ((error: FileError) => void) | undefined) => void' is not assignable to type '(successCallback?: FileSystemEntryCallback | undefined, errorCallback?: ErrorCallback | undefined) => void'. Types of parameters 'successCallback' and 'successCallback' are incompatible. Type 'FileSystemEntryCallback | undefined' is not assignable to type '(entry: Entry) => void'. Type 'undefined' is not assignable to type '(entry: Entry) => void'. ``` Typescript's conflict arises because `Window.requestFileSystem` is defined by libdom as well as this plugin. Typescript doesn't use the interface names to match types, but rather pays attention to the interfaces being compatible with each other. The only solution is either https://github.com/apache/cordova-plugin-file/pull/536 (which lies about cordova's own types to maintain compatibility) or this plugin should move off the `requestFileSystem` method to a new method that does not conflict with libdom. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
