2016-08-16 55 views
0

我正在使用angular beta.8,並且我正在使用gulp嘗試將我的應用部署到apache http服務器。如何配置gulp,以便它可以通過Angular2找到jquery「名稱」

我有一個的.ts文件是這樣的:

import {Component, OnInit} from 'angular2/core'; 

export class Calendar implements OnInit { 

date: any; 

    ngOnInit() { 
     $('.datepicker').pickadate({ 

,當我嘗試推出「吞掉」命令,會顯示多個錯誤,現在我試圖解決這個問題的:

error TS2304: Cannot find name '$'. 

我不知道如何爲轉譯器提供此功能,並且在尋找解決方案時,我發現了兩個解決方案分支:將/// <reference path="../node_modules/angular2/typings/browser.d.ts" />添加到我已經引導的位置,並添加了我目前擁有的類型:

{ 

    "ambientDependencies": { 
    "es6-shim": "github:DefinitelyTyped/DefinitelyTyped/es6-shim/es6-shim.d.ts#4de74cb527395c13ba20b438c3a7a419ad931f1c", 
    "jasmine": "github:DefinitelyTyped/DefinitelyTyped/jasmine/jasmine.d.ts#bc92442c075929849ec41d28ab618892ba493504" 
    }, 
    "globalDependencies": { 
    "es6-collections": "registry:dt/es6-collections#0.5.1+20160316155526", 
    "es6-promise": "registry:dt/es6-promise#0.0.0+20160614011821" 
    } 
} 

它沒有任何問題,所以我想知道還有什麼需要讓這個錯誤消失。

我也有其他的錯誤,我不確定它們是否相關,主要是它抱怨沒有找到名稱'Observable','OnInit',我在.ts文件中引用的一對.js函數,以及幾個

TS2307 cannot find module 'ng2-material/all' 

或不同的打字稿文件,它似乎沒有找到。

我想說的是,如果代碼在plunker或瀏覽器上執行,代碼就可以工作,但在嘗試使用gulp進行部署時,它不起作用。

我讀過這個線程和應用的一切,但我說這是不是爲我工作Angular 2 typescript can't find names

回答

0

對於第一個錯誤,它看起來像你想使用jQuery($),但打字稿編譯器不知道那是什麼。嘗試添加聲明語句如下:

import {Component, OnInit} from 'angular2/core'; 

declare var $: any; 

export class Calendar implements OnInit { 
    ... 

這只是告訴$是類型的變量,編譯器「任何」在一些第三方JavaScript文件(jQuery的在這種情況下)定義。

+0

如果我按照你說的做,我會得到「ts1206裝飾器在這裏是無效的」,如果我把它放在export語句之後,我會得到「error ts1068 unexpected token」和「error ts1005';'預計「何時不應該有;所以我相信語法不完全正確? –

+1

@monkey:查看上面的修改代碼。如果這不是解決第一個錯誤,那麼它可能是一些其他問題。 – user2444499

相關問題