Pdf.js: طلب الميزة: أضف تعريفات الأنواع لـ Typescript واجعلها متاحة على NPM.

تم إنشاؤها على ٢٢ ديسمبر ٢٠١٦  ·  20تعليقات  ·  مصدر: mozilla/pdf.js

أود أن أطلب "تعريفات النوع" من أجل تنضيد لهذه المكتبة. سيكون من الرائع استخدام هذه المكتبة في مشاريع Typescript الخاصة بي.

شكرا.

1-other 2-feature

التعليق الأكثر فائدة

حاولت استخدام كتابات من DefinitelyTyped لكنها سيئة للغاية ومضحكة. (اضحك حتى لا تبكي)

هذه هي أحدث الكتابة (تم نقلها): https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/pdfjs-dist/index.d.ts

إليك كيف ستستخدمها:

// imports typings first
import { PDFJSStatic, PDFDocumentProxy, PDFPromise } from 'pdfjs-dist';

// then import the actual library using require() instead of import
let pdfjs: PDFJSStatic = require("pdfjs-dist");

// only then you can actually do something useful
pdfjs.getDocument('helloworld.pdf').then(function (pdf: PDFDocumentProxy ) {
  let pageNum = 1;
  renderPage(pdf, pageNum);
});

هل ترى كيف يتعين عليك استيراد نوع PDFJSStatic وهمي ثم تهيئة متغير من هذا النوع باستخدام require() ؟ هذا محض هراء. (لا جرم للمؤلف الأصلي)

يرجى إعادة فتح هذه المشكلة لأن هناك حاجة إلى طباعة ذات جودة أفضل لملفات pdfj. ما عليك سوى إلقاء نظرة على عدد قليل من أسئلة SO هذه:

أعتقد أن معظم الأشخاص الذين يحاولون استخدام pdf.js في تطبيق TypeScript ينتهي بهم الأمر بكتابة تعليمات برمجية غير صحيحة أو مجرد التخلي عن تجربة شيء آخر. لا يساعد في نقل الكتابة من @types/pdf إلى @types/pdfjs-dist بدون أي نوع من الإعلان من DefinitelyTyped.

لذلك حقًا ، سيكون من الأفضل كثيرًا لمطوري TypeScript في كل مكان إذا كانت الحزمة pdfjs-dist تحتوي على كتابات مكتفية ذاتيًا وذات جودة عالية.

ال 20 كومينتر

هل يمكنك أن تشرح قليلاً ما هو هذا بالضبط؟ لماذا لا يمكنك استخدامه في مشاريع TypeScript الآن وما حجم هذا التغيير؟

من الممكن إعادة إنشاء ملفات تعريف من display / api.js ، وسيكون ذلك أسهل على الشخص الذي فعل ذلك بالفعل. سنكيف الأسلوب من https://www.typescriptlang.org/docs/handbook/declaration-files/introduction.html . ستتمثل المشكلة في الاحتفاظ بملفات api.js وملفات التعريف متزامنة ولكنها ستكون أسهل بعد إنشاء الأخير.

لاحظ أنه يجب إنشاء pdf.d.ts لملف pdfjs-dist / build / pdf.js وليس للملفات الموجودة في المجلد / src.

لست متأكدًا من مقدار العمل المطلوب لإنشاء "ملفات تعريف النوع" لأنني لا أمتلك خبرة في إنشاء "ملفات إقرار النوع".

أعتقد أنه يمكنك استخدام مكتبات Javascript لجهات خارجية في Typescript بدون "ملفات تعريف النوع" ، ولكن عند توفر "ملفات تعريف النوع" ، يمكنك الحصول على معلومات غنية أثناء استخدام مكتبات الطرف الثالث.

https://www.typescriptlang.org/docs/handbook/decerson-files/introduction.html هو مورد جيد لبدء التعرف على "ملفات إقرار النوع".

أفضل ما إذا كان بإمكانك أيضًا إتاحة "ملفات إقرار النوع" على NPM. يجعل من السهل تضمينهم في المشروع.

على سبيل المثال باستخدام الأمر التالي: npm install @ types / pdfjs-dist --save-dev

يعد نشرها عبر "@ types /" إحدى الطرق للقيام بذلك وعادة ما يتم ذلك بواسطة مساهمين من جهات خارجية. إذا كنا ملتزمين بتضمين دعم ملفات .d.ts ، فيمكن تضمينها في ملف pdfjs-dist's package.json (لا يوجد سبب لوضعها في حزمة npm منفصلة afaik)

ملاحظة: انظر https://www.typescriptlang.org/docs/handbook/declaration-files/publishing.html لمعرفة الاختلافات.

على ما يبدو ، يمكنك تجميع "ملفات إقرار النوع" مع حزمة NPM الموجودة بالفعل. نسيت ما يخص ذلك. لا حاجة لنشرها على @ أنواع /

يوجد ملف d.ts في ريبو DefinitelyTyped لهذا: DefinitelyTyped pdf.js

لم أتحقق من مدى اكتمالها أو دقتها ، لكنها قد تكون نقطة انطلاق جيدة.

حاولت استخدام كتابات من DefinitelyTyped لكنها سيئة للغاية ومضحكة. (اضحك حتى لا تبكي)

هذه هي أحدث الكتابة (تم نقلها): https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/pdfjs-dist/index.d.ts

إليك كيف ستستخدمها:

// imports typings first
import { PDFJSStatic, PDFDocumentProxy, PDFPromise } from 'pdfjs-dist';

// then import the actual library using require() instead of import
let pdfjs: PDFJSStatic = require("pdfjs-dist");

// only then you can actually do something useful
pdfjs.getDocument('helloworld.pdf').then(function (pdf: PDFDocumentProxy ) {
  let pageNum = 1;
  renderPage(pdf, pageNum);
});

هل ترى كيف يتعين عليك استيراد نوع PDFJSStatic وهمي ثم تهيئة متغير من هذا النوع باستخدام require() ؟ هذا محض هراء. (لا جرم للمؤلف الأصلي)

يرجى إعادة فتح هذه المشكلة لأن هناك حاجة إلى طباعة ذات جودة أفضل لملفات pdfj. ما عليك سوى إلقاء نظرة على عدد قليل من أسئلة SO هذه:

أعتقد أن معظم الأشخاص الذين يحاولون استخدام pdf.js في تطبيق TypeScript ينتهي بهم الأمر بكتابة تعليمات برمجية غير صحيحة أو مجرد التخلي عن تجربة شيء آخر. لا يساعد في نقل الكتابة من @types/pdf إلى @types/pdfjs-dist بدون أي نوع من الإعلان من DefinitelyTyped.

لذلك حقًا ، سيكون من الأفضل كثيرًا لمطوري TypeScript في كل مكان إذا كانت الحزمة pdfjs-dist تحتوي على كتابات مكتفية ذاتيًا وذات جودة عالية.

StevenLiekens محق تمامًا. ملف تعريف النوع @types/pdfjs-dist هو مأساة . ليس لديها حتى GlobalWorkerOptions . هل من الصعب على Mozilla تقديم ملف تعريف نوع لهذا المشروع؟ نتوقع المزيد من Mozilla.

ارتطام هذا. @types/pdfjs-dist ليس قريبًا من الاستخدام.

تكافح من خلال @types/pdfjs-dist أيضًا. لا يوجد أي من عرض طبقة النص فيه. لقد لجأت إلى زيادة الوحدة من خلال دمج الإعلان:

declare module "pdfjs-dist" {
    export interface TextLayerRenderTask extends PDFLoadingTask<void> { }
    export interface RenderTextLayerOptions {
        textContent: TextContent;
        viewport: PDFPageViewport;
        container: HTMLElement;
    }
    export function renderTextLayer(options: RenderTextLayerOptions): TextLayerRenderTask;
}

SandyGifford نعم ... أنواع الحروف المطبوعة بتنسيق pdf.js قديمة جدًا على ما يبدو.

إذا قمت بإرسال PR ، فهل يمكننا الحصول على هذا الدعم رسميًا؟ API ليس بهذه الصعوبة.

هذا حقا حقا حقا حاجة. يعد pdf.js رائعًا / وظيفيًا ولكن واجهة برمجة التطبيقات غير موثقة بشكل أساسي. هذا حقا يحتاج إلى تصحيح.

+1 ، نحتاج إلى تعريفات مناسبة للأنواع!

الرجاء إجراء 1+ للتعليق العلوي بدلاً من الرد حتى يسهل علينا قياس اهتمام المجتمع. علاوة على ذلك ، يجري العمل من أجل ذلك ؛ شاهد # 11235 الذي هبط قبل يومين و # 11209 الذي هبط قبل ستة أيام ، كلاهما لتحسين تعليقات JSDoc من أجل توثيق أفضل وإنشاء تعريف TypeScript.

هل هناك شخص يعمل على كتابة ملف إقرار بالأنواع في الوقت الحالي؟

تم العمل على 10575 مرة أخرى ، وقررنا أن هذه هي الطريقة التي نود أن نقدم بها تعريفات TypeScript.

تم الإصلاح بطلب السحب رقم 12102. لقد استغرق الأمر بعض الوقت للوصول إلى حل يمكن صيانته واختباره ، ولكن بفضل العمل الجاد من أعضاء المجتمع ، تم الانتهاء منه الآن. ستبدأ إصدارات pdfjs-dist شحن تعريفات TypeScript كما تم إنشاؤها من تعليقات JSDoc الخاصة بنا.

نحن منفتحون على المساهمات من المجتمع لتحسين وثائق API الخاصة بنا بشكل أكبر ، ليس فقط من أجل توثيق API أفضل ولكن أيضًا لأنواع أفضل نظرًا لأن كلاهما تم إنشاؤه من تعليقات JSDoc في الملفات.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات