Tslint: Tidak dapat mengimpor dan menggunakan moment.js

Dibuat pada 11 Nov 2017  ·  3Komentar  ·  Sumber: palantir/tslint

Laporan Bug

  • __TSLint versi__: 5.8.0
  • __TypeScript versi__: 2.6.1
  • __Menjalankan TSLint melalui__: (pilih salah satu) CLI

Kode TypeScript sedang dilinting

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

const x: moment.Moment = moment();

logger.info(x.toString());

dengan konfigurasi 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"]
}

Perilaku sebenarnya

Kesalahan yang dilaporkan:

/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'.

Perilaku yang diharapkan

Kemampuan untuk menggunakan moment.js. Sampai sekarang tslint mendeteksinya sebagai tipe: any , yang menyebabkan kesalahan linting. Menariknya, jika saya mencoba mengimpor metode tertentu, saya masih mendapatkan kesalahan no-unsafe-any yang sama:

Contoh:

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

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

logger.info(x.toString());

Menghasilkan keluaran:

/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'.

Perhatian saja - file .d.ts disertakan dengan momen - tidak perlu menginstal dari @types.

Duplicate

Komentar yang paling membantu

Tetapi bagaimana jika saya ingin menggunakan variabel yang tidak digunakan juga?

Ada beberapa opsi:

Mengapa ini tampaknya hanya memengaruhi momen dalam proyek saya - Saya memiliki banyak perpustakaan pihak ke-3 lainnya yang mengimpor dengan baik.

Tidak ada yang benar-benar tahu apa yang salah dan mengapa. Aturan itu entah bagaimana mengacaukan internal TypeScript.

Semua 3 komentar

Perhatian saja - file .d.ts disertakan dengan momen - tidak perlu menginstal dari @types.

Terima kasih, itu akan menjadi pertanyaan pertama saya.

tslint:all mengaktifkan no-unused-variable . Aturan ini diketahui mengganggu aturan tipe lain yang diperiksa: #2736
Anda dapat mencoba menonaktifkan no-unused-variable dan melihat apakah kesalahannya hilang.

Anda dapat mencoba menonaktifkan variabel yang tidak digunakan dan melihat apakah kesalahannya hilang.

Itu berhasil. Tetapi bagaimana jika saya ingin menggunakan no-unused-variable juga? Mengapa ini tampaknya hanya memengaruhi momen dalam proyek saya - Saya memiliki banyak perpustakaan pihak ke-3 lainnya yang mengimpor dengan baik.

Tetapi bagaimana jika saya ingin menggunakan variabel yang tidak digunakan juga?

Ada beberapa opsi:

Mengapa ini tampaknya hanya memengaruhi momen dalam proyek saya - Saya memiliki banyak perpustakaan pihak ke-3 lainnya yang mengimpor dengan baik.

Tidak ada yang benar-benar tahu apa yang salah dan mengapa. Aturan itu entah bagaimana mengacaukan internal TypeScript.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

dashmug picture dashmug  ·  3Komentar

rajinder-yadav picture rajinder-yadav  ·  3Komentar

Ne-Ne picture Ne-Ne  ·  3Komentar

denkomanceski picture denkomanceski  ·  3Komentar

avanderhoorn picture avanderhoorn  ·  3Komentar