你知道如何配置 tslint 来检查 angular2 中的 no-unused-variable 和 unsed 导入,我已经在我的 tslint 文件中添加了这两行
"no-unused-expression": true,
"no-unused-variable": true,
Run Code Online (Sandbox Code Playgroud)
但它可能不起作用,有什么想法吗?
使用如下导入时:
import { Component, OnInit } from "@angular/core";
Run Code Online (Sandbox Code Playgroud)
在“@angular/core”周围使用单引号或双引号是惯例吗?
TSLint 表示:
[tslint] " should be ' (quotemark)
Run Code Online (Sandbox Code Playgroud)
这看起来很奇怪,因为该文件是使用 angular-cli 命令创建的
ng g c someComponent
Run Code Online (Sandbox Code Playgroud)
所以它似乎会创建打字稿标准的导入,所以现在我不确定哪种格式是正确的。
我有一个 React - Typescript 创建的:
create-react-app my-app --scripts-version=react-scripts-ts
Run Code Online (Sandbox Code Playgroud)
它编译得很好,但每次我看到这条消息或警告时:
No valid rules have been specified for JavaScript files
Run Code Online (Sandbox Code Playgroud)
任何想法如何摆脱它?
> react-scripts-ts build
Creating an optimized production build...
Starting type checking and linting service...
Using 1 worker with 2048MB memory limit
ts-loader: Using typescript@2.8.3 and /Users/julian/my-app/tsconfig.json
No valid rules have been specified for JavaScript files
Compiled successfully.
Run Code Online (Sandbox Code Playgroud)
我的 tscongif.json 和 tslint.json 文件可以在这里找到:https ://gist.github.com/JulianG/be82d9fa20f48f60ce10371fa5095230
运行时可以控制自动修复哪些规则tslint --fix吗?理想情况下,我只想自动修复空白和引号规则,然后我将手动评估其余部分。我似乎在文档中找不到任何内容可以告诉我哪些规则可以自动修复,或者如何控制要应用的规则,并且我对盲目地修复所有内容有些担心。
我目前正在使用Angular CLI自动生成的tslint文件。
我已经 5 周没有碰过 VS Code 或我的电脑了(假期),现在突然间 TS lint 开始疯狂地显示完全不正确的 lint 错误。它们甚至还没有接近正确,并且它在未更改且之前没有 lint 错误的文件中显示了这一点。它基本上向我抛出随机错误。如果我通过终端检查它不会报告任何错误。
这种情况在 VS Code 和 Atom 中都发生过多次。真的不知道它是如何修复的,它只是出现然后最终消失。
有人经历过这种情况或者知道这可能是什么吗?
在我的 TSLint 文件中,我有:
"no-unused-variable": true
Run Code Online (Sandbox Code Playgroud)
在我的组件中,有时我有:
// tslint:disable-next-line:no-unused-variable
@HostBinding('class') private classes = 'my-theme';
Run Code Online (Sandbox Code Playgroud)
因为classes是私有的,TSLint 抱怨,所以我每次都必须禁用 TSLint。
因为封装我不想公开。@HostBinding
解决这个问题的推荐方法是什么?
我有这个基本模型。
const stuff = types.model({
term: types.string,
excludeTerm: types.string,
stores: types.array(types.string)
}).actions(self => ({
setTerm(term: string) {
self.term = term
},
setExcludeTerm(term: string) {
self.excludeTerm = term
},
setStores(stores: string[]) {
self.stores = stores // <<< the lint error is on this line
}
}))
Run Code Online (Sandbox Code Playgroud)
我收到以下TS Lint错误:
Type 'string[]' is not assignable to type 'IMSTArray<ISimpleType<string>> & IStateTreeNode<IArrayType<ISimpleType<string>>>'.
Type 'string[]' is missing the following properties from type 'IMSTArray<ISimpleType<string>>': spliceWithArray, observe, intercept, clear, and 4 more.ts(2322)
这是一个令人讨厌的错误。我可以这样分配来修复它:(self as any).stores = stores …
我正在尝试使用 Angular 8 附带的 linter,但我有一段时间忽略了 TSLint 错误。我希望慢慢地清除错误,并且我正在寻找一种在整个目录上运行 linter 的方法,其中一些目录可能有多个子目录。
我查看了 ng lint 的 Angular 文档,但没有发现任何有用的内容(或者我可能忽略了某些内容)。我以为我正在寻找的是--files标志,但我一定做错了什么,因为当我运行时ng lint --files,我只能让它使用单个文件,而不是整个目录。
例如,使用ng lint --files src/app/+register/registration.component.ts效果很好。
有人对此有什么想法吗?我很想得到一些帮助。
提前致谢!
我有一个foo在代码库中使用的对象,需要bar从中访问属性。然而,由于特定情况,ts 认为其上不存在财产,尽管实际上存在。所以我到处都看到这条消息的红线:
类型“bar”上不存在属性“foo”
在我的 ts-config 文件中,我想将其设置为忽略所有这些错误,但仅限于变量foo。
这可以做到吗?
假设我们有一个应用程序和一个库Nrwl Nx。
/apps\n /myApp\n\n/libs\n /myLib\n /components\n /my.component.ts\n /other.component.ts\n /index.ts\nRun Code Online (Sandbox Code Playgroud)\n\n我已经设置了标签nx.json和nx-enforce-module-boundaries规则来阻止在库中导入应用程序。它有效,这部分很好。
我想做的另一件事是强制在库中使用桶文件。所以我创建了一条路径tsconfig.ts
"paths": {\n "@myNs/my-lib": ["libs/myLib/index.ts"]\n}\nRun Code Online (Sandbox Code Playgroud)\n\n我遇到了这个问题。假设我们有从 导出的东西index.ts。
// index.ts\nexport { MyComponent } from \'./components/my.component\';\nRun Code Online (Sandbox Code Playgroud)\n\n现在,如果我们使用一些自动导入 IDE 功能(例如 fromWebStorm或VS Code)。他们将MyComponent使用路径导入@myNs/my-lib- 这是预期的,因为我刚刚像这样配置了它。
当我想自动导入里面的东西时,一个真正的问题出现了myLib(这些导入应该是相对的,而不是@myNs/my-lib) - 根据逻辑和这篇文章([这里有趣的文章]):
\n永远不要让 lib 从它自己的 Barrel 文件导入
\n\n特定库中的 TypeScript 模块不应该关心该库公开的功能,因此它不应该在任何时候使用自己的 Barrel 文件。
\n\n如果模块从其自己的桶文件中导入某些内容,则几乎总是会导致循环引用错误。因此,从模块内部的导入应使用相对路径导入。
\n …