[英]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 。
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.