#typescript #typescript-typings #tslint
#typescript #typescript-типизации #tslint
Вопрос:
У меня есть следующий метод 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 | }
Type guard выдает какую-то синтаксическую ошибку синтаксического анализа в моем linter. Это всего лишь один пример, это происходило в каждом type guard, который я написал.
Есть какие-нибудь мысли о том, что может быть причиной этой проблемы?Похоже, я не смог найти кого-либо еще с этим в Интернете.
Приложение
Мои версии 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/**"
]
}
}
Комментарии:
1. Я попытался запустить код thins, и была только ошибка linter
ERROR: main.ts:1:45 - Array type using 'Array<T>' is forbidden for simple types. Use 'T[]' instead. ERROR: main.ts:2:38 - Unnecessary semicolon
. Вы уверены, что версии такие же, как в вопросах?
Ответ №1:
Как вы запускаете TSLint? Возможно, что TSLint и TypeScript вашего проекта отличаются от тех, с которыми вы работаете вручную.
Если вы запускаете TSLint в командной строке, например, с помощью tslint -c tslint.json
, попробуйте обновить его и соответствующие библиотеки до последней версии:
npm i -g tslint@latest typescript@latest tsutils@latest
Если через расширение редактора / IDE, убедитесь, что оно и расширение обновлены.