标签: tslint

在打字稿中,什么是!解除引用会员时(感叹号/爆炸)运营商?

在查看tslint规则的源代码时,我遇到了以下语句:

if (node.parent!.kind === ts.SyntaxKind.ObjectLiteralExpression) {
    return;
}
Run Code Online (Sandbox Code Playgroud)

注意!操作员之后node.parent.有趣!

我首先尝试使用我当前安装的TS版本(1.5.3)在本地编译该文件.结果错误指向爆炸的确切位置:

$ tsc --noImplicitAny memberAccessRule.ts 
noPublicModifierRule.ts(57,24): error TS1005: ')' expected.
Run Code Online (Sandbox Code Playgroud)

接下来我升级到最新的TS(2.1.6),编译它没有问题.所以它似乎是TS 2.x的特征.但是,转化完全忽略了爆炸,导致以下JS:

if (node.parent.kind === ts.SyntaxKind.ObjectLiteralExpression) {
    return;
}
Run Code Online (Sandbox Code Playgroud)

我的Google fu到目前为止都没有让我失望.

什么是TS的感叹号操作符,它是如何工作的?

typescript tslint

338
推荐指数
4
解决办法
9万
查看次数

在 Visual Studio Code 中运行的 Angular 应用程序中,TSLint 扩展抛出错误

我最近开始看到 TSLint 错误。它们看起来像这样:

不使用为“/Users/myname/myproject/client/src/app/likes/likee/likee.component.ts”找到的本地 TSLint 版本。要从当前工作区启用代码执行,您必须启用工作区库执行。

当我打开它们时,我在我的 .ts 文件中看到它们,它在每个 .ts 页面的第一行显示一条黄色波浪线。

我在TSLint网站上看到它说它已被弃用。

问题 1 - 这些错误的原因是什么,为什么我会突然看到它们?

问题 2 - 我应该卸载 Visual Studio Code TSLint 扩展并安装 ESLint 扩展吗?

eslint tslint visual-studio-code vscode-extensions angular

235
推荐指数
7
解决办法
7万
查看次数

tslint/codelyzer/ng lint错误:"for(... in ...)语句必须使用if语句进行过滤"

Lint错误消息:

src/app/detail/edit/edit.component.ts [111,5]:for(... in ...)语句必须用if语句过滤

代码片段(这是一个工作代码.它也可以在angular.io表单验证部分获得):

for (const field in this.formErrors) {
      // clear previous error message (if any)
      this.formErrors[field] = '';
      const control = form.get(field);

      if (control && control.dirty && !control.valid) {
        const messages = this.validationMessages[field];
        for (const key in control.errors) {
          this.formErrors[field] += messages[key] + ' ';
        }
      }
    }
Run Code Online (Sandbox Code Playgroud)

知道如何修复这个lint错误吗?

tslint angular2-forms angular-cli angular

201
推荐指数
5
解决办法
10万
查看次数

如何忽略tslint的特定目录或文件?

正在使用的IDE是WebStorm 11.0.3,tslint已配置并可正常工作,但由于它尝试解析大型*.d.ts库文件而挂起.

有没有办法忽略特定的文件或目录?

javascript ide webstorm typescript tslint

113
推荐指数
8
解决办法
8万
查看次数

tslint说不允许调用console.log - 我该如何允许?

我刚开始使用带有typescript的create-react-app

create-react-app my-app --scripts-version=react-scripts-ts
Run Code Online (Sandbox Code Playgroud)

并且默认的tslint.json配置不允许console.log().

我怎么能(现在)启用console.log?

相关文档位于 https://palantir.github.io/tslint/rules/no-console/.但是他们没有说明这一行:

    "no-console": [true, "log", "error"]
Run Code Online (Sandbox Code Playgroud)

我搜索并找到了这个tslint.json配置文件的语法,所以我尝试了这个:

"rules": {
    "no-console": [true, "warning"]
}
Run Code Online (Sandbox Code Playgroud)

试图获取只是警告的日志消息.但那没用.

我已经注释掉了我所拥有的一些console.log()行,但希望将来能够这样做.

typescript reactjs tslint create-react-app

81
推荐指数
5
解决办法
6万
查看次数

Angular2 - HTTP RequestOptions HEADERS

我目前对tslint有一个问题,希望有人能指出我正确的方向.

我正在尝试使用Angular2框架提供的HTTP发送HTTP GET请求.有了这个请求,我必须指定内容类型和承载认证令牌.

我的代码示例:

let headers = new Headers();
let authToken = this._user.getUser().JWT;
headers.append('Content-Type', 'application/json');
headers.append('Authorization', `Bearer ${authToken}`);
let options = new RequestOptions({ headers: headers });

this._http.get('http://' + url '/', options)
            .timeout(3000)
            .subscribe(
                (res) => {
Run Code Online (Sandbox Code Playgroud)

然而,这是有效的,tslint抱怨说

"TS2345:类型'{headers:Headers;}'的参数不能分配给'RequestOptionsArgs'类型的参数.属性'headers'的类型是不兼容的.类型'Headers'不能分配给'Headers'类型.两种不同的类型存在此名称,但它们不相关."标题"类型中缺少属性"键".

我很感谢这种支持.

http typescript tslint angular

73
推荐指数
3
解决办法
7万
查看次数

如何使用tslint lint整个文件夹

是否可以使用tslint lint整个文件夹?

使用eslint可以eslint ./src验证整个文件夹.

当我尝试为tslint做同样的事情时 - 我收到了一个错误Error: EISDIR: illegal operation on a directory.在他们的网站示例中 - 他们展示了如何验证单个文件,通常情况并非如此.

是否可以在没有额外的东西的情况下验证我的项目,例如gulp-tslint,从命令行?

typescript tslint

60
推荐指数
3
解决办法
3万
查看次数

如何使用`@ ts-ignore`作为块

// @ts-ignore评论使打字稿编译器忽略它下面的线.

如何用Typescript忽略整个代码块?

typescript tslint

60
推荐指数
7
解决办法
5万
查看次数

在Typescript中使用引号的标准是什么?

我在申请中注意到TsLint建议:

static $inject = [
        '$http',
        '$q',
        '$scope',
        'configService',
        'stateService',
        'utilityService'
    ];
Run Code Online (Sandbox Code Playgroud)

对于上述情况:

Message 2   TsLint: ' should be "
Run Code Online (Sandbox Code Playgroud)

这是一个适用于Typescript的建议标准吗?

typescript tslint

58
推荐指数
5
解决办法
5万
查看次数

如何重写代码以避免TSLint"通过字符串文字访问对象"

我是TypeScript的新手,我想知道是否存在一种重写代码的好方法,以避免在以下代码中出现TSLint错误"不允许通过字符串文字进行对象访问"

interface ECType
{
    name: string;
    type: string;
    elementType?: string;
}

export var fields: { [structName: string]: Array<ECType>; } = { };

class ECStruct1 {
    foo: string;
    bar: number;
    baz: boolean;
    qux: number;
    quux: number;
    corge: ECStruct2[];
    grault: ECStruct2;

    constructor() {
        ...
    }
} 

fields['ECStruct1'] = [
    { name: 'foo', type: 'string' },
    { name: 'bar', type: 'int' },
    { name: 'baz', type: 'bool' },
    { name: 'qux', type: 'long' },
    { name: 'quux', type: 'ulong' },
    { name: 'corge', …
Run Code Online (Sandbox Code Playgroud)

typescript tslint

55
推荐指数
5
解决办法
4万
查看次数