टाइपस्क्रिप्ट का उपयोग करके एक कोणीय 2 ऐप बनाना, मैं लोकप्रिय d3
लाइब्रेरी आयात करने का प्रयास कर रहा हूं।टाइपस्क्रिप्ट - प्रकार बनाम "घोषित var" टाइप परिभाषाओं के साथ
मैं TSD
का उपयोग कर प्रकार परिभाषाएं स्थापित किया है, और मैं tsd.d.ts
फ़ाइल ठीक से संदर्भित कर रहा हूँ:
/// <reference path="../../../tools/typings/tsd/tsd.d.ts" />
अब, मैं अपने d3
node_module import
करना चाहते हैं। यह NPM
के माध्यम से स्थापित किया गया था:
/// <reference path="../../../tools/typings/tsd/tsd.d.ts" />
import * as d3 from 'd3/d3';
यह काम करता है, लेकिन मैं अपने प्रकार परिभाषाएं से कोई लाभ नहीं मिलता है। मेरा आईडीई किसी भी प्रकार की अगली जानकारी या सिंटैक्स हाइलाइटिंग प्रदान नहीं कर रहा है। यदि मैं यह करने के लिए बदल:
/// <reference path="../../../tools/typings/tsd/tsd.d.ts" />
import * as d3 from 'd3/d3';
मैं अब वाक्य रचना हाइलाइटिंग/टाइप-आगे परिभाषाओं कि मैं उम्मीद कर रहा हूँ के सभी मिलता है। हालांकि, मेरा ऐप node_modules/d3.js
पर एक फ़ाइल की तलाश में है जो अस्तित्व में नहीं है, इसलिए यह स्पष्ट रूप से काम नहीं करता है।
जब मैं एक var
घोषणा करने के लिए अपने आयात बयान बदलने के लिए, मेरे ऐप सही ढंग से संकलित और मैं सभी उचित टाइपप्रति परिभाषाएं प्राप्त:
/// <reference path="../../../tools/typings/tsd/tsd.d.ts" />
declare var d3 = require('d3/d3');
तो, मेरे सवाल का बस सही दृष्टिकोण क्या है? import
बनाम declare var
में अंतर क्या है, और import
का उपयोग करते समय टाइप परिभाषाएं प्राप्त करने का कोई तरीका है यदि वे स्वयं एनपीएम मॉड्यूल में शामिल नहीं हैं?
मैंने देखा है कि import {Component} from 'angular2/core';
जैसी चीजें ठीक काम करती हैं, लेकिन टाइप परिभाषाएं उसी निर्देशिका में शामिल की जाती हैं जैसे जावास्क्रिप्ट फ़ाइल मैं आयात कर रहा हूं।
टाइपप्रति किस संस्करण का उपयोग कर रहे हैं। – SnareChops
@JMac मैं टाइपस्क्रिप्ट के साथ काम करने के लिए डी 3 प्राप्त करने की कोशिश कर रहा हूं। क्या आप अंत में यह काम कर रहे थे? क्या आपका प्रोजेक्ट ओपन सोर्स है? – Ciwan