TSLint обнаруживает ошибку разбора в типе guard, но TS-компилятор не обнаруживает никаких ошибок - PullRequest
0 голосов
/ 07 марта 2019

У меня есть следующий метод 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 | }

Тип охранник генерирует какую-то синтаксическую ошибку синтаксического анализа в моем линтере. Это всего лишь один пример, это происходило с каждым типом охранника, которого я написал.

Есть мысли о том, что может быть причиной этой проблемы? Кажется, я не могу найти кого-то еще с этим в Интернете.


Приложение

Мои версии машинописного текста / текста:

"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/**"
        ]
    }
}

1 Ответ

0 голосов
/ 11 марта 2019

Как у вас работает TSLint?Возможно, что TSLint и TypeScript вашего проекта отличаются от того, с которым вы работаете вручную.

Если вы запускаете TSLint в командной строке, например, с tslint -c tslint.json, попробуйте обновить его и соответствующие библиотеки.до последней версии:

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

Если используется расширение редактора / IDE, убедитесь, что оно и расширение обновлены.

...