Tslint: moment.jsをインポートして使用できません

作成日 2017年11月11日  ·  3コメント  ·  ソース: palantir/tslint

バグレポート

  • __TSLintバージョン__:5.8.0
  • __TypeScriptバージョン__:2.6.1
  • __TSLintの実行__ :( 1つ選択)CLI

リンティングされているTypeScriptコード

import * as moment from 'moment';
import { logger } from './utils/logger';

const x: moment.Moment = moment();

logger.info(x.toString());

tslint.json構成の場合:

{
    "extends": ["tslint:all", "tslint-eslint-rules", "tslint-config-prettier"],
    "rules": {
        "completed-docs": [false],
        "member-ordering": [
            true,
            {
                "order": [
                    "public-static-field",
                    "protected-static-field",
                    "private-static-field",
                    "public-instance-field",
                    "private-instance-field",
                    "public-constructor",
                    "protected-constructor",
                    "private-constructor",
                    "public-static-method",
                    "protected-static-method",
                    "private-static-method",
                    "public-instance-method",
                    "private-instance-method"
                ]
            }
        ],
        "no-implicit-dependencies": false,
        "no-inferrable-types": false,
        "no-null-keyword": false,
        "prettier": [
            true,
            {
                "bracketSpacing": true,
                "jsxBracketSameLine": false,
                "parser": "typescript",
                "printWidth": 120,
                "semi": true,
                "singleQuote": true,
                "tabWidth": 4,
                "trailingComma": "all",
                "useTabs": false
            }
        ],
        "variable-name": [true, "allow-leading-underscore", "allow-pascal-case", "ban-keywords", "check-format"]
    },
    "rulesDirectory": ["tslint-plugin-prettier"]
}

実際の動作

報告されたエラー:

/Users/mrandolph/Projects/***/***/src/server/test.ts
ERROR: 4:26   no-unsafe-any  Unsafe use of expression of type 'any'.
ERROR: 6:13   no-unsafe-any  Unsafe use of expression of type 'any'.

予想される行動

moment.jsを使用する機能。 現在、tslintはそれをタイプanyとして検出しています。これにより、リンティングエラーが発生します。 興味深いことに、特定のメソッドをインポートしようとすると、同じno-unsafe-anyエラーが発生します。

例:

import { duration, Duration } from 'moment';
import { logger } from './utils/logger';

const x: Duration = duration(1, 'week');

logger.info(x.toString());

出力を生成します:

/Users/mrandolph/Projects/***/***/src/server/test.ts
ERROR: 4:21   no-unsafe-any  Unsafe use of expression of type 'any'.
ERROR: 6:13   no-unsafe-any  Unsafe use of expression of type 'any'.

ただ注意してください-.d.tsファイルはmomentに含まれています-@ typesからインストールする必要はありません。

Duplicate

最も参考になるコメント

しかし、no-unused-variableも使用したい場合はどうなりますか?

いくつかのオプションがあります:

これが私のプロジェクトの瞬間にのみ影響するように見えるのはなぜですか?他にも、正常にインポートできるサードパーティのライブラリがたくさんあります。

何がうまくいかないのか、そしてその理由は誰にもわかりません。 ルールはどういうわけかtypescriptの内部を台無しにします。

全てのコメント3件

ただ注意してください-.d.tsファイルはmomentに含まれています-@ typesからインストールする必要はありません。

ありがとう、それが私の最初の質問だったでしょう。

tslint:allno-unused-variable有効にします。 このルールは、他のタイプチェックルールに干渉することが知られています:#2736
no-unused-variableを無効にして、エラーがなくなるかどうかを確認できます。

no-unused-variableを無効にして、エラーがなくなるかどうかを確認することができます。

それはうまくいった。 しかし、 no-unused-variableも使用したい場合はどうなりますか? これが私のプロジェクトの瞬間にのみ影響するように見えるのはなぜですか?他にも、正常にインポートできるサードパーティのライブラリがたくさんあります。

しかし、no-unused-variableも使用したい場合はどうなりますか?

いくつかのオプションがあります:

これが私のプロジェクトの瞬間にのみ影響するように見えるのはなぜですか?他にも、正常にインポートできるサードパーティのライブラリがたくさんあります。

何がうまくいかないのか、そしてその理由は誰にもわかりません。 ルールはどういうわけかtypescriptの内部を台無しにします。

このページは役に立ちましたか?
0 / 5 - 0 評価