Я сделал эту небольшую модификацию ответа Мэтта Маккатчена, чтобы исправить это.
ите следующую функцию стрелки 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. Это возможно?