-
Notifications
You must be signed in to change notification settings - Fork 4.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ESLint 在 TypeScript 项目中导入接口触发 no-unused-vars
error
#3096
Comments
欢迎提交 Issue~ 如果你提交的是 bug 报告,请务必遵循 Issue 模板的规范,尽量用简洁的语言描述你的问题,最好能提供一个稳定简单的复现。🙏🙏🙏 如果你的信息提供过于模糊或不足,或者已经其他 issue 已经存在相关内容,你的 issue 有可能会被关闭。 Good luck and happy coding~ |
第一个问题应该是 typescript-eslint 的 bug,没办法处理已经使用过的类型; |
好的,我去上游找一下解决方案吧 感谢解惑~ (建议在 TS 模板里添加注释,解释一下这个现象 |
这样写你第一个问提还有错吗? import Taro from '@tarojs/taro';
interface Props {
// 这边没有就不写
// class 写成 class Index extends Taro.Component {}
}
class Index extends Taro.Component<Props, {}> {
public config: Taro.PageConfig = {
backgroundColor: '#000000',
disableScroll: true,
};
public render(): JSX.Element {
return (
<View />
);
}
}
export default Index as ComponentType; |
实在不好意思,我反馈完问题就删除初始项目了(而且我的 Taro 没安装 global package,再 init 一个比较麻烦),您可以亲自 init 一个试一试。 |
您好 yuche, 上游 typescript-eslint 推荐的 config 中,不会有导入的接口 unused 的错误提示。(但是会触发另外更多与 Taro 风格不符的错误)。 所以我想,Taro cli 中默认模板语言已经是 TS 了,并且使用了 typescript-eslint,是不是应该针对 TS,更新一下我们的 eslint-config-taro 包,以有个更好的 TS 代码体验。 下面是我做的部分测试: "rules": {
"no-unused-vars": "off",
"@typescript-eslint/no-unused-vars": ["error", {
"varsIgnorePattern": "Taro"
}],
"react/jsx-filename-extension": [1, {
"extensions": [".js", ".jsx", ".tsx"]
}]
} 就不会有第一个导入接口 unused 的错误了 |
抱歉我项目从 1.2.22 用到 1.3.0 都没出现过这些问题 附上我的 ESLint Config {
"extends": [
"taro",
"plugin:@typescript-eslint/recommended",
"prettier",
"prettier/@typescript-eslint"
],
"rules": {
"no-unused-vars": ["error", { "varsIgnorePattern": "Taro" }],
"react/jsx-filename-extension": [1, { "extensions": [".js", ".jsx", ".tsx"] }]
},
"parser": "@typescript-eslint/parser",
"plugins": ["@typescript-eslint"],
"parserOptions": {
"project": "./tsconfig.json"
}
} 补充一下,至于为什么我会跟你提这个写法是因为,我们项目就是这样写的 |
看起来比官方 Demo 规范唉 0.0~ 希望会更新更好的 config 吧 |
老版本的 ESLint 疑似无法检测到 typescript 的 interface 是否使用
你好 @yuche , |
第一个问题是taro的ts模板中貌似没安装@typescript-eslint/eslint-plugin,然后no-unused-vars这个规则使用的eslint的规则,所以不识别interface,简单解决就是上面的库,把no-unused-vars改为@typescript-eslint/no-unused-vars |
问题描述
用 taro init 一个新的 TypeScript 项目,eslint 对接口触发
no-unused-vars
error还有,从 this.props 而来的函数名必须要以
on
或dispatch
开头。初始化 Demo 里的 add, minus也报错了复现步骤
初始化一个 Typescript 项目
VSCode 打开项目,并启用 ESLint,就报错了
期望行为
正确处理 Lint 行为
报错信息
[这里请贴上你的完整报错截图或文字]
系统信息
The text was updated successfully, but these errors were encountered: