Я сделал эту небольшую модификацию ответа Мэтта Маккатчена, чтобы исправить это.

ите следующую функцию стрелки Typescript:

/**
 * Returns a probably unique component name.
 * 
 * @param baseName a suggested name to make unique.
 * @returns a probably unique name.
 */
export const getUniqueComponentName = (
  baseName
): string => {
  return baseName + Math.round(Math.random() * 10000000)
}

Когда Typescript настроен вtsconfig.json в качестве таких:

"noImplicitAny": true,

Это правильно приводит к ошибке компиляции:

[ts] Параметр 'baseName' неявно имеет тип 'any'.

Visual Studio Code также достаточно умен, чтобы сообщить вам об этой проблеме во время разработки.

Моя цель состоит в том, чтобы создать pre-commit git hook, который предотвращает попадание таких ошибок в управление версиями. Я пытался сделать это сtslint, husky а такжеlint-staged используя этоnpm script:

"lint": "tslint --project tsconfig.json --config tslint.json"

Однако это не приводит к ошибке компиляции, обнаруженной tslint. Это молча игнорируется.

Затем я попытался добавить правило в tslint.json:

"typedef": [
      true,
      "arrow-parameter"
    ]

Хотя это заставило tslint жаловаться, оно также начало жаловаться на функции анонимных стрелок, гдеtsc Компилятор не жалуется. В этих функциях стрелок нет необходимости добавлять типы, потому что типы уже были установлены ранее в родительской области (они выводятся).

В общем, я бы хотел, чтобы tslint в этом случае вел себя так же, как и tsc. В любое время, когда возникает ошибка, которая может привести к сбою компиляции (например, функция стрелки выше), я бы хотел предотвратить фиксацию, но без фактической компиляции в Javascript. Это возможно?

Ответы на вопрос(2)

Ваш ответ на вопрос