Android-DTS 生成器:可迭代和其他泛型和基类的错误



我正在尝试为PDFBox-Android编写一个插件,并使用nativescript中的android-dts-generator。 我正在使用稍微修改的 jar 运行该工具(因为命名空间函数无效(。

当我编译打字稿文件时,一切都很好。 但是当我运行插件(使用npm run demo.android(时,我收到以下错误:

../src/platforms/android/typings/pdfbox-android.d.ts:1611:19 - error
TS2720: Class 'PairData0Format0' incorrectly implements class
'Comparator<Array<number>>'. Did you mean to extend
'Comparator<Array<number>>' and inherit its members as a subclass?  
Property 'equals' is missing in type 'PairData0Format0'.
1611                            export class PairData0Format0 extends
com.tom_roush.fontbox.ttf.KerningSubtable.PairData implements
java.util.Comparator<native.Array<number>>  {
~~~~~~~~~~~~~~~~

../src/platforms/android/typings/pdfbox-android.d.ts:4714:18 - error
TS2720: Class 'COSArray' incorrectly implements class
'Iterable<COSBase>'. Did you mean to extend 'Iterable<COSBase>' and
inherit its members as a subclass?   Property 'wait' is missing in
type 'COSArray'.
4714                    export class COSArray extends
com.tom_roush.pdfbox.cos.COSBase implements
java.lang.Iterable<com.tom_roush.pdfbox.cos.COSBase>  {
~~~~~~~~

../src/platforms/android/typings/pdfbox-android.d.ts:5034:18 - error
TS2720: Class 'COSName' incorrectly implements class
'Comparable<COSName>'. Did you mean to extend 'Comparable<COSName>'
and inherit its members as a subclass?   Property 'wait' is missing in
type 'COSName'.
5034                    export class COSName extends
com.tom_roush.pdfbox.cos.COSBase implements
java.lang.Comparable<com.tom_roush.pdfbox.cos.COSName>  {
~~~~~~~

../src/platforms/android/typings/pdfbox-android.d.ts:7309:33 - error
TS2314: Generic type 'List<E>' requires 1 type argument(s).
7309                            public writeTokens(param0:
java.util.List): void;
~~~~~~~~~~~~~~

../src/platforms/android/typings/pdfbox-android.d.ts:7463:32 - error
TS2314: Generic type 'List<E>' requires 1 type argument(s).
7463                            public setThreads(param0:
java.util.List): void;
~~~~~~~~~~~~~~

../src/platforms/android/typings/pdfbox-android.d.ts:11087:31 - error
TS2314: Generic type 'List<E>' requires 1 type argument(s).
11087                                   public setPages(param0:
java.util.List): void;
~~~~~~~~~~~~~~

../src/platforms/android/typings/pdfbox-android.d.ts:11099:38 - error
TS2314: Generic type 'List<E>' requires 1 type argument(s).
11099                                   public setEmbeddedFDFs(param0:
java.util.List): void;
 ~~~~~~~~~~~~~~

../src/platforms/android/typings/pdfbox-android.d.ts:11192:33 - error
TS2314: Generic type 'List<E>' requires 1 type argument(s).
11192                                   public setOptions(param0:
java.util.List): void;
~~~~~~~~~~~~~~

../src/platforms/android/typings/pdfbox-android.d.ts:17568:33 - error
TS2314: Generic type 'List<E>' requires 1 type argument(s).
17568                           public static sort(param0:
java.util.List): void;
~~~~~~~~~~~~~~

../src/platforms/android/typings/pdfbox-android.d.ts:17569:33 - error
TS2314: Generic type 'List<E>' requires 1 type argument(s).
17569                           public static sort(param0:
java.util.List, param1: java.util.Comparator): void;
~~~~~~~~~~~~~~

../src/platforms/android/typings/pdfbox-android.d.ts:17569:57 - error
TS2314: Generic type 'Comparator<T>' requires 1 type argument(s).
17569                           public static sort(param0:
java.util.List, param1: java.util.Comparator): void;
             ~~~~~~~~~~~~~~~~~~~~

有人可以告诉我如何解决它们吗?我真的需要打字。

解决方案是使用泛型和超级参数来生成类型。

最后一个命令如下所示:

java -jar dts-generator/build/libs/dts-generator.jar -input dts-generator/jar-files/pdfbox-android.jar -input-generics libs/generics.txt -super ${ANDROID_HOME}/platforms/android-19/android.jar

更多信息可以在我在github上的问题帖子中找到: https://github.com/NativeScript/android-dts-generator/issues/35#issuecomment-431419734

最新更新