簡體   English   中英

WebStorm無法識別Ng2的“只讀”內容嗎?

[英]WebStorm can't recognize “readonly” of Ng2?

WebStorm編譯錯誤。 ng2中的以下代碼:

export declare class NgForRow {
    ....
    constructor($implicit: any, index: number, count: number);
    //when remove readonly,it works!
    readonly first: boolean;//has compile error
    readonly last: boolean;//has compile error
    readonly even: boolean;//has compile error
    readonly odd: boolean;//has compile error
}

錯誤:(7,14)TS1005:預期為'='。

錯誤:(7,19)TS1005:';' 預期。

錯誤:(8、14)TS1005:應為'='。

錯誤:(8、18)TS1005:';' 預期。

在此處輸入圖片說明

與WebStorm捆綁在一起的TypeScript編譯器(最新版本為1.8.10)不支持“只讀”修飾符。 您可以通過選擇“自定義”編譯器版本來嘗試使用獨立的TypeScript編譯器-請參閱https://www.jetbrains.com/help/webstorm/2016.1/transpiling-typescript-to-javascript.html#d239602e138

WEB-21317

Webstorm還不支持TypeScript 2.0。

更多: https : //basarat.gitbooks.io/typescript/content/docs/types/readonly.html

選件

使用其他支持TypeScript尖端的編輯器(我正在編寫alm.tools並編寫了atom- typescript ),或者只是容忍IDE中的錯誤(但在控制台上保持綠色)。

最簡單的方法是不編譯依賴項,您只需要編譯應用程序即可。 確保在tsconfig.json文件中排除node_modules:

  //tsconfig.json
  {
     "compilerOptions": {
      "target": "es5",
       ...
     },
     "exclude": [
        "node_modules",
        "typings/main",
        "typings/main.d.ts"
     ]
  }

確保將webstorm設置為使用tsconfig。 您可能必須重新啟動WS,因為我必須這樣做才能使其實際加載更改。 這應該繞過,並需要升級到TS2,直到准備就緒為止。

訣竅是什么?

您可能會認為忽略node_modules目錄將不允許TS加載定義,但事實並非如此。 在Angular2類中,您顯式導入ng模塊:

import { OnInit } from '@angular/core';

因此,只要正確配置了模塊加載器,這些模塊的定義就會被顯式加載:

"module": "commonjs",
"moduleResolution": "node",

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM