एक typecript .d.ts टाइप परिभाषा लिखिए नोड_मॉडल फ़ोल्डर

Apr 01 2019

मुझे बाहरी (npm) लाइब्रेरी के लिए .d.ts फ़ाइल लिखने की आवश्यकता है। मैं टाइपस्क्रिप्ट 3 का उपयोग कर रहा हूं।

मुझे जो आयात चाहिए वो हैं:

import fakedb from 'fake-indexeddb'; //sorted
// second import I would like:
import dbKeyRange from 'fake-indexeddb/lib/FDBKeyRange'

प्रकार / नकली-अनुक्रमित db.d.ts से:

export = index;
declare const index: IDBFactory;

मैं लाइब्रेरी से दूसरे आयात के लिए एक फ़ाइल कैसे लिखूंगा जो मैं ( fake-indexeddb/lib/FDBKeyRange- क IDBKeyRange) चाहूंगा ?

Juraj Kocan द्वारा उत्तर देते समय संपादित करें। तार्किक रूप से मुझे .d.ts फ़ाइल में क्या डालना है, सवाल यह है कि मुझे फ़ाइल का नाम क्या है इसलिए जब मैं लिखता हूं तो डिबगर और ट्रांसपिलर को फ़ाइल मिल जाती है import dbKeyRange from 'fake-indexeddb/lib/FDBKeyRange'- यह स्पष्ट है कि यह कैसे है पाता प्रकार / नकली indexeddb.d.ts फ़ाइल।

जवाब

JurajKocan Apr 01 2019 at 21:24

घोषणा में पूरा नाम जोड़ें

declare module 'fake-indexeddb/lib/FDBKeyRange' {
  class dbKeyRange {}
  export default dbKeyRange
}

संपादित करें

घोषणाओं के लिए कुछ नियम हैं। tsconfig में टाइप रोस्ट्स जोड़ें

 "typeRoots": [
  "./node_modules/@types",
  "./whateveryouwant/types"
],

या अन्य मार्ग से कोई फर्क नहीं पड़ता। बस ts config में परिभाषित किया जाना है तो अपने मॉड्यूल के नाम के साथ फ़ोल्डर जोड़ें। इस फ़ोल्डर में index.d.ts जोड़ें

--src
  --types
    --fake-indexeddb
      --index.d.ts
Brent Apr 02 2019 at 03:47

मैंने अंततः अपने प्रकार निर्देशिका के तहत फ़ोल्डर पथ मैप किया, और यह काम किया। परिभाषा फ़ाइल का अंतिम रास्ता था:

types/fake-indexeddb/lib/FDBKeyRange.d.ts

उस फ़ाइल में परिभाषा के साथ।