Tslint: No se puede importar y usar moment.js

Creado en 11 nov. 2017  ·  3Comentarios  ·  Fuente: palantir/tslint

Informe de error

  • __TSLint versión__: 5.8.0
  • __Versión de TypeScript__: 2.6.1
  • __Ejecutando TSLint a través de__: (elija uno) CLI

El código de TypeScript está entretejido

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

const x: moment.Moment = moment();

logger.info(x.toString());

con tslint.json configuración:

{
    "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"]
}

Comportamiento real

Errores reportados:

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

Comportamiento esperado

La capacidad de usar moment.js. A partir de ahora, tslint lo está detectando como tipo: any , lo que provoca errores de pelusa. Curiosamente, si intento importar un método específico, todavía obtengo los mismos errores que no son inseguros:

Ejemplo:

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

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

logger.info(x.toString());

Produce salida:

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

Solo un aviso: el archivo .d.ts se incluye con el momento, no es necesario instalarlo desde @types.

Duplicate

Comentario más útil

Pero, ¿qué pasa si también quiero usar una variable no utilizada?

Hay varias opciones:

¿Por qué esto solo parece afectar el momento en mi proyecto? Tengo muchas otras bibliotecas de terceros que se importan bien.

Nadie sabe realmente qué sale mal y por qué. La regla de alguna manera interfiere con los aspectos internos del mecanografiado.

Todos 3 comentarios

Solo un aviso: el archivo .d.ts se incluye con el momento, no es necesario instalarlo desde @types.

Gracias, esa hubiera sido mi primera pregunta.

tslint:all habilita no-unused-variable . Se sabe que esta regla interfiere con otras reglas verificadas de tipo: # 2736
Puede intentar deshabilitar no-unused-variable y ver si los errores desaparecen.

Puede intentar deshabilitar la variable no-no utilizada y ver si los errores desaparecen.

Eso funciono. Pero, ¿qué pasa si también quiero usar no-unused-variable ? ¿Por qué esto solo parece afectar el momento en mi proyecto? Tengo muchas otras bibliotecas de terceros que se importan bien.

Pero, ¿qué pasa si también quiero usar una variable no utilizada?

Hay varias opciones:

¿Por qué esto solo parece afectar el momento en mi proyecto? Tengo muchas otras bibliotecas de terceros que se importan bien.

Nadie sabe realmente qué sale mal y por qué. La regla de alguna manera interfiere con los aspectos internos del mecanografiado.

¿Fue útil esta página
0 / 5 - 0 calificaciones