TSLint检测类型保护中的解析错误但TS编译器未检测到任何错误

问题描述 投票:0回答:1

我有以下带有类型保护的TypeScript方法:

export function isArray(item: any): item is Array<any> {
    return item.constructor === Array;
}

当我在文件上运行tslint时,我得到以下输出:

1:42  error  Parsing error: Unexpected token, expected "{"

> 1 | export function isArray(item: any): item is Array<any> {
    |                                          ^
  2 |     return item.constructor === Array
  3 | }

类型后卫在我的linter中抛出某种语法分析错误。这只是一个例子,它发生在我写的每一个类型的守卫中。

有什么可能导致这个问题的想法?我似乎无法在网上找到其他任何人。


附录

我的typescript / tslint版本是:

"tslib": "1.9.3",
"tslint": "5.13.1",
"tslint-config-prettier": "1.18.0",
"tslint-eslint-rules": "5.4.0",
"tslint-react": "3.6.0",
"typescript": "3.3.3333",

我的tslint配置是:

{
    "extends": [
        "tslint:latest",
        "tslint-react",
        "tslint-eslint-rules",
        "tslint-config-prettier"
    ],
    "rules": {
        "no-submodule-imports": [true, "react-native-vector-icons"],
        "interface-name": [true, "always-prefix"],
        "object-literal-sort-keys": [false],
        "semicolon": [true, "never"],
        "jsdoc-format": [false],
        "valid-jsdoc": [false],
        "no-unnecessary-type-assertion": [true],
        "max-classes-per-file": [false, 2],
    },
    "linterOptions": {
        "exclude": [
            "node_modules",
            "app/**/**.js",
            "packager/**"
        ]
    }
}
typescript typescript-typings tslint
1个回答
0
投票

你是如何运行TSLint的?可能是您的项目的TSLint和TypeScript与您手动运行的不同。

如果您在命令行上运行TSLint,例如使用tslint -c tslint.json,请尝试将其更新并将相关库更新为最新版本:

npm i -g tslint@latest typescript@latest tsutils@latest

如果通过编辑器/ IDE扩展,请确保它和扩展是最新的。

© www.soinside.com 2019 - 2024. All rights reserved.