खोज…


वाक्य - विन्यास

  • import {component} from 'libName'; // Will import the class "component"
  • import {component as c} from 'libName'; // Will import the class "component" into a "c" object
  • import component from 'libname'; // Will import the default export from libName
  • import * as lib from 'libName'; // Will import everything from libName into a "lib" object
  • import lib = require('libName'); // Will import everything from libName into a "lib" object
  • const lib: any = require('libName'); // Will import everything from libName into a "lib" object
  • import 'libName'; // Will import libName module for its side effects only

टिप्पणियों

ऐसा लग सकता है कि वाक्य रचना

import * as lib from 'libName';

तथा

import lib = require('libName');

एक ही बात कर रहे हैं, लेकिन वे नहीं हैं!

आइए विचार करें कि हम टाइपस्क्रिप्ट-विशिष्ट export = वाक्य रचना के साथ निर्यात किए गए एक व्यक्ति को आयात करना चाहते हैं:

class Person {
...
}
export = Person;

इस मामले में इसे es6 सिंटैक्स के साथ आयात करना संभव नहीं है (हम संकलन समय पर एक त्रुटि प्राप्त करेंगे), टाइपस्क्रिप्ट-विशिष्ट import = सिंटैक्स का उपयोग किया जाना चाहिए।

import * as Person from 'Person';  //compile error
import Person = require('Person');  //OK

रूपांतरण सही है: क्लासिक मॉड्यूल को दूसरे सिंटैक्स के साथ आयात किया जा सकता है, इसलिए, एक तरह से अंतिम सिंटैक्स अधिक शक्तिशाली है क्योंकि यह सभी निर्यातों को आयात करने में सक्षम है।

अधिक जानकारी के लिए आधिकारिक दस्तावेज देखें।

एनपीएम से एक मॉड्यूल आयात करना

यदि आपके पास मॉड्यूल के लिए एक प्रकार की परिभाषा फ़ाइल (d.ts) है, तो आप एक import विवरण का उपयोग कर सकते हैं।

import _ = require('lodash');

यदि आपके पास मॉड्यूल के लिए परिभाषा फ़ाइल नहीं है, तो टाइपस्क्रिप्ट संकलन पर एक त्रुटि फेंक देगा क्योंकि यह उस मॉड्यूल को नहीं पा सकता है जिसे आप आयात करने की कोशिश कर रहे हैं।

इस स्थिति में, आप सामान्य रनटाइम फ़ंक्शन की require साथ मॉड्यूल आयात कर सकते हैं। हालांकि, यह any प्रकार के रूप में देता है।

// The _ variable is of type any, so TypeScript will not perform any type checking.
const _: any = require('lodash');

टाइपस्क्रिप्ट 2.0 के रूप में, आप टाइपस्क्रिप्ट को यह बताने के लिए एक शॉर्टहैंड परिवेश मॉड्यूल घोषणा का भी उपयोग कर सकते हैं कि एक मॉड्यूल मौजूद है जब आपके पास मॉड्यूल के लिए एक प्रकार की परिभाषा फ़ाइल नहीं है। टाइपस्क्रिप्ट हालांकि इस मामले में कोई सार्थक टाइपकास्टिंग प्रदान करने में सक्षम नहीं होगा।

declare module "lodash";

// you can now import from lodash in any way you wish:
import { flatten } from "lodash";
import * as _ from "lodash";

टाइपस्क्रिप्ट 2.1 के रूप में, नियमों को आगे भी शिथिल किया गया है। अब, जब तक कोई मॉड्यूल आपके node_modules निर्देशिका में मौजूद है, टाइपस्क्रिप्ट आपको इसे आयात करने की अनुमति देगा, यहां तक कि कहीं भी मॉड्यूल की घोषणा नहीं की जाएगी। (ध्यान दें कि --noImplicitAny संकलक विकल्प का उपयोग करने पर, नीचे अभी भी एक चेतावनी उत्पन्न होगी।)

// Will work if `node_modules/someModule/index.js` exists, or if `node_modules/someModule/package.json` has a valid "main" entry point
import { foo } from "someModule";

परिभाषा फ़ाइलें ढूँढना

टाइपस्क्रिप्ट 2.x के लिए:

निश्चित रूप से निश्चित की गई परिभाषाएँ @types npm पैकेज के माध्यम से उपलब्ध हैं

npm i --save lodash
npm i --save-dev @types/lodash

लेकिन यदि आप अन्य रेपो से उपयोग के प्रकार चाहते हैं तो पुराने तरीके से उपयोग किया जा सकता है:

टाइपस्क्रिप्ट 1.x के लिए:

टाइपिंग एक एनपीएम पैकेज है जो स्वचालित रूप से स्थानीय प्रोजेक्ट में टाइप परिभाषा फ़ाइलों को स्थापित कर सकता है। मेरा सुझाव है कि आप क्विकस्टार्ट पढ़ें।

npm install -global typings

अब हम टाइपिंग क्लि तक पहुँच सकते हैं।

  1. पहला कदम परियोजना द्वारा उपयोग किए जाने वाले पैकेज की खोज करना है

    typings search lodash
    NAME              SOURCE HOMEPAGE                                        DESCRIPTION VERSIONS UPDATED
    lodash            dt     http://lodash.com/                                          2        2016-07-20T00:13:09.000Z
    lodash            global                                                             1        2016-07-01T20:51:07.000Z
    lodash            npm    https://www.npmjs.com/package/lodash                        1        2016-07-01T20:51:07.000Z
    
  2. फिर तय करें कि आपको किस स्रोत से इंस्टॉल करना चाहिए। मैं dt का उपयोग करता हूं जो निश्चित रूप से एक GitHub रेपो के लिए खड़ा है जहां समुदाय टाइपिंग को संपादित कर सकता है, यह सामान्य रूप से सबसे हाल ही में अपडेट किया गया है।

  3. टाइपिंग फ़ाइलें स्थापित करें

     typings install dt~lodash --global --save
    

चलो आखिरी कमांड को तोड़ते हैं। हम अपनी परियोजना में एक ग्लोबल टाइपिंग फ़ाइल के रूप में लॉशटाइट के निश्चित संस्करण को स्थापित कर रहे हैं और इसे typings.json में एक निर्भरता के रूप में typings.jsontypings.json । अब हम जहाँ भी लॉश को आयात करते हैं, टाइपस्क्रिप्ट लॉज़ टाइपिंग फ़ाइल को लोड करेगा।

  1. यदि हम टंकण स्थापित करना चाहते हैं, जिसका उपयोग केवल विकास पर्यावरण के लिए किया जाएगा, तो हम --save-dev ध्वज की आपूर्ति कर सकते हैं:

     typings install chai --save-dev
    

टाइपिंग के बिना वैश्विक बाहरी पुस्तकालयों का उपयोग करना

यद्यपि मॉड्यूल आदर्श होते हैं, यदि आप जिस लाइब्रेरी का उपयोग कर रहे हैं, उसे एक वैश्विक चर (जैसे $ या _) द्वारा संदर्भित किया जाता है, क्योंकि यह एक script टैग द्वारा लोड किया गया था, तो आप इसे संदर्भित करने के लिए एक परिवेश घोषणा बना सकते हैं:

declare const _: any;

टाइपस्क्रिप्ट 2.x के साथ परिभाषा फ़ाइलों को ढूँढना

टाइपस्क्रिप्ट के 2.x संस्करणों के साथ, टाइपिंग अब npm @types रिपॉजिटरी से उपलब्ध हैं। ये स्वचालित रूप से टाइपस्क्रिप्ट कंपाइलर द्वारा हल किए जाते हैं और उपयोग करने के लिए बहुत सरल होते हैं।

एक प्रकार की परिभाषा को स्थापित करने के लिए आप इसे अपनी परियोजनाओं के पैकेज में देव निर्भरता के रूप में स्थापित करते हैं

जैसे

npm i -S lodash
npm i -D @types/lodash

स्थापित करने के बाद आप पहले की तरह मॉड्यूल का उपयोग करें

import * as _ from 'lodash'


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow