我有以下带有类型保护的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/**"
]
}
}
你是如何运行TSLint的?可能是您的项目的TSLint和TypeScript与您手动运行的不同。
如果您在命令行上运行TSLint,例如使用tslint -c tslint.json
,请尝试将其更新并将相关库更新为最新版本:
npm i -g tslint@latest typescript@latest tsutils@latest
如果通过编辑器/ IDE扩展,请确保它和扩展是最新的。