Ionic Lint

本文基于Ionic 3 ,開發(fā)語言版本如下

"devDependencies": {
        "@ionic/app-scripts": "3.2.4",
        "typescript": "2.6.2"
    },

Eslint

"eslint": "^6.8.0" 支持Ts的版本>=3.2.1 <3.8.0,所以暫時放棄使用Eslint
關(guān)于eslint 更多更新的的消息可以走的傳送門 typescript-eslint github

Tslint

安裝請走:


Tslint rule


{
    "defaultSeverity": "error",
    "extends": [
        "tslint:recommended"
    ],
    "rules": {
        "member-access": true, // 設(shè)置成員對象的訪問權(quán)限(public,private,protect)
        "member-ordering": [// 設(shè)置修飾符順序
            true,
            {
                "order": [ 
                    "public-static-field",
                    "public-static-method",
                    "protected-static-field",
                    "protected-static-method",
                    "private-static-field",
                    "private-static-method",
                    "public-instance-field",
                    "protected-instance-field",
                    "private-instance-field",
                    "public-constructor",
                    "protected-constructor",
                    "private-constructor",
                    "public-instance-method",
                    "protected-instance-method",
                    "private-instance-method"
                ]
            }
        ],
        // "no-empty-interface":true,// 不允許空接口
        "no-parameter-reassignment":false,// 不允許修改方法輸入?yún)?shù)
        "prefer-for-of":true,// 如果for循環(huán)中沒有使用索引,建議是使用for-of
 
        // 功能特性
        "no-namespace":false,
        "only-arrow-functions":false, //禁止使用傳統(tǒng)(非箭頭)函數(shù)表達式
        "no-shadowed-variable": true, // 不允許子作用域與外層作用域聲明同名變量
        "no-string-literal":false,
        "ban-types": false,// 禁止內(nèi)置原始類型
        "await-promise":true,// 不允許沒有Promise的情況下使用await
        "curly":true,// if/for/do/while強制使用大括號
        "forin":false,// 使用for in語句時,強制進行hasOwnProperty檢查
        "no-arg":true,// 不允許使用arguments.callee
        "no-bitwise":false, // 不允許使用特殊運算符 &, &=, |, |=, ^, ^=, <<, <<=, >>, >>=, >>>, >>>=, ~
        "no-conditional-assignment":true,// do while/for/if/while 語句中將會對例如if(a=b)進行檢查
        "no-console":true,// 不允許使用console對象
        "no-debugger":true,// 不允許使用debugger
        "no-duplicate-super":true,// 不允許super() 兩次使用在構(gòu)造函數(shù)中
        "no-empty":false,// 函數(shù)體不允許空
        "no-eval":true,// 不允許使用eval
        "no-for-in-array":true,// 不允許對Array使用for-in
        "no-invalid-template-strings":true,// 只允許在模板字符串中使用${
        // "no-invalid-this":true,// 不允許在class之外使用this
        // "no-null-keyword":true,// 不允許使用null,使用undefined代替null,指代空指針對象
        "no-sparse-arrays":true,// 不允許array中有空元素
        "no-string-throw":true,// 不允許throw一個字符串
        "no-switch-case-fall-through":true,// 不允許case段落中在沒有使用breack的情況下,在新啟一段case邏輯
        "no-unsafe-finally":true,// 不允許在finally語句中使用return/continue/break/throw
        "no-unused-expression":true,// 不允許使用未使用的表達式
        "no-use-before-declare":true,// 在使用前必須聲明
        "no-var-keyword":true,// 不允許使用var
        "radix":false,// parseInt時,必須輸入radix精度參數(shù)
        // "restrict-plus-operands":true,// 不允許自動類型轉(zhuǎn)換,如果已設(shè)置不允許使用關(guān)鍵字var該設(shè)置無效
        "triple-equals":false,// 必須使用恒等號,進行等于比較
        "use-isnan":true,// 只允許使用isNaN方法檢查數(shù)字是否有效
 
        // 維護性功能
        "indent":[true, "spaces", 4],// 每行開始以4個空格符開始
        "max-classes-per-file":[true,1],// 每個文件中可定義類的個數(shù)
        "max-file-line-count":[true,1000],// 定義每個文件代碼行數(shù)
        "max-line-length":[true,300],// 定義每行代碼數(shù)
        "no-default-export":true,// 禁止使用export default關(guān)鍵字,因為當export對象名稱發(fā)生變化時,需要修改import中的對象名。https://github.com/palantir/tslint/issues/1182#issue-151780453
        "no-duplicate-imports":true,// 禁止在一個文件內(nèi),多次引用同一module
 
        // 格式
        "align":[true,"parameters","arguments","statements","members","elements"],// 定義對齊風(fēng)格
        "array-type":[true,"array"],// 建議使用T[]方式聲明一個數(shù)組對象
        "class-name":false,// 類名以大駝峰格式命名
        "comment-format":[true, "check-space"],// 定義注釋格式
        "encoding":false,// 定義編碼格式默認utf-8
        "import-spacing":true,// import關(guān)鍵字后加空格
        "interface-name":[true,"always-prefix"],// interface必須以I開頭
        "jsdoc-format":false,// 注釋基于jsdoc風(fēng)格
        "new-parens":true,// 調(diào)用構(gòu)造函數(shù)時需要用括號
        "object-literal-sort-keys":false,
        "no-consecutive-blank-lines":[true,2],// 不允許有空行
        // "no-trailing-whitespace": [// 不允許空格結(jié)尾
        //     true,
        //     "ignore-comments",
        //     "ignore-jsdoc"
        // ],
        "no-unnecessary-initializer":true,// 不允許沒有必要的初始化
        "variable-name":[false, "check-format",// 定義變量命名規(guī)則
            "allow-leading-underscore",
            "allow-trailing-underscore",
            "ban-keywords"]
    },
    "rulesDirectory": [],
    "linterOptions": {
        "exclude": [
            "e2e/**/*"
        ]
    }
}

ionic 根目錄運行 npm run lint 運行 ionic 的lint 檢查

————————————————
參考:
https://blog.csdn.net/lck8989/java/article/details/90940585

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 項目中原來有好多_.get(a, `b.c.d`, [])樣式的代碼,看著很不爽,因為項目用的Typescript...
    JonahCui閱讀 1,303評論 0 1
  • 工程化治理主要分為以下幾個方面: 靜態(tài)檢查:typescript + ESLint 開發(fā)體驗: 打包工具和Mono...
    夏日里的小丸子閱讀 956評論 0 0
  • 小沈是一個剛剛開始工作的前端實習(xí)生,第一次進行團隊開發(fā),難免有些緊張。在導(dǎo)師的安排下,拿到了項目的 git 權(quán)限,...
    Nanayai閱讀 2,341評論 4 10
  • 今天,媽媽帶我和表弟回爺爺奶奶家了?;丶铱吹介T前的磚上長了好多草,我和弟弟就拿來剪刀和鐮刀開始割草了...
    榮賢閱讀 124評論 0 0
  • 緩緩聽你訴說,訴說這些故事,此刻仿佛依舊沉浸在這杯酒里,酒還沒飲完,故事已訴說完,那些故事里人,物依舊讓人相信,這...
    希雅的花園閱讀 190評論 0 0

友情鏈接更多精彩內(nèi)容