2016-01-06 5 views
8

मैं एक बहुत ही सरल फ़ाइल है है प्रकार 'JQueryStatic' का होना चाहिए, लेकिन यहाँ:

/// <reference path="../typings/browser/ambient/jquery/jquery" /> 
import {Component} from "angular2/core"; 

@Component({}) 
export class AppComponent{ 

    constructor(){ 
     $.isEmptyObject({}); 
    } 

} 

मैं jQuery typings स्थापित तो टाइपप्रति $ पहचान नहीं के बारे में शिकायत नहीं होता। लेकिन अब बात सवाल में इस मुद्दे के बारे में शिकायत की है:

Error:(1679, 13) TS2403: Subsequent variable declarations must have the same type. Variable '$' must be of type 'JQueryStatic', but here has type 'cssSelectorHelper'. 

यह समस्या इसलिए होता है क्योंकि कोणीय-चांदा $ घोषित किया गया है और साथ ही, लेकिन एक JQueryStatic वस्तु के बजाय एक cssSelectorHelper के रूप में।

बात यह है कि ... मैं बिल्कुल प्रोटैक्टर का उपयोग नहीं कर रहा हूं !!!, जब मैं कोणीय 2/कोड से कुछ आयात करता हूं तो यह क्यों जोड़ा जा रहा है? इसके लिए एक सभ्य कामकाज है जब तक कि कोणीय लोग इसे ठीक नहीं करते हैं, अगर वे कभी करते हैं।

नोट: प्रोटैक्टर फ़ाइल में परिभाषा को टिप्पणी करना एक सभ्य कामकाज नहीं है, मैं कुछ स्थायी खोज रहा हूं जो किसी और को परियोजना को पकड़ लेता है और एक साफ इंस्टॉल चलाता है या जब हम कोणीय को अद्यतन करते हैं पुस्तकालय।

+0

आपका प्रश्न वास्तव में http://stackoverflow.com/questions/34546446/flattening-type का डुप्लिकेट है स्क्रिप्ट-टाइपिंग-या-इंटरफेस/उम्मीद है कि कोणीय टीम जल्द ही इस समस्या को ठीक करेगी। –

+0

वे संबंधित हैं, डुप्लिकेट नहीं। वह एक और सामान्य लगता है और पूरे कोणीय 2 को निश्चित रूप से टाइप किए गए lib के रूप में पूछ रहा है। मैं बस इस विशिष्ट jquery संघर्ष के लिए इसे हल करना चाहता हूं, क्योंकि यह बेवकूफ है कि वे कोर मॉड्यूल में पहले स्थान पर प्रोटैक्टर को बुला रहे हैं। – Langley

+0

तो आपकी समस्या यह है https://github.com/angular/angular/issues/4725, है ना? –

उत्तर

0

एक काम के आसपास, JQueryStatic बाहर टिप्पणी और कोणीय-protractor.d.ts के तल पर cssSelectorHelper के साथ बदलें के रूप में

declare var browser: protractor.IBrowser; 
declare var by: protractor.IProtractorLocatorStrategy; 
declare var By: protractor.IProtractorLocatorStrategy; 
declare var element: protractor.Element; 
// declare var $: JQueryStatic; 
declare var $: cssSelectorHelper; 
declare var $$: cssArraySelectorHelper; 
+0

आपको इसे पीछे की ओर मिला है, आपको इसके बजाय JQueryStatic के लिए cssSelectorHelper को प्रतिस्थापित करना होगा या बस उस पंक्ति पर टिप्पणी करें जो मैं एटीएम कर रहा हूं। यह काम करता है, लेकिन रेपो डाउनलोड करने वाले प्रत्येक व्यक्ति को ऐसा करना होगा। मैं एक स्वचालित समाधान की तलाश में हूं, जैसे नोड के साथ प्रोटैक्टर मॉड्यूल को छोड़कर, या पूरे स्रोत को दूसरे स्रोत से डाउनलोड करना, क्योंकि ऐसा लगता है कि मास्टर रेपो में समस्या हल हो गई है, अभी तक एनपीएम के लिए कोई नया निर्माण नहीं है। एक और अस्थायी कामकाज निम्न है: $ .isEmptyObject ({}); – Langley

7
d.ts फ़ाइल में

की जगह

declare module "jquery" { 
    export = $; 
} 
declare var jQuery: JQueryStatic; 
declare var $: JQueryStatic; 

साथ
declare module "jquery" { 
    export = jQuery; 
} 
declare var jQuery: JQueryStatic; 
संबंधित मुद्दे

 संबंधित मुद्दे