Tslint - 유형이 사소한 추론 - 유형을 여기에 포함하는 것이 나쁜 관행인 이유는 무엇입니까?
VSCode에서 다음 코드를 추가하면 linter인 tslint가 다음과 같이 불평합니다.
serverId: number = 10;
그리고 다음과 같은 메시지를 제공합니다.
[tslint] 숫자 리터럴에서 경미하게 추론된 형식 번호, 형식 주석 제거(이해할 수 없는 형식)
'번호' 유형을 제거하면 메시지가 사라집니다.
유형 정보를 여기에 포함하는 것이 좋지 않은 이유는 무엇입니까?
나쁜 습관은 아니지만,serverId: number = 10
중복됩니다, 왜냐하면number
속성이 할당될 때 유형이 유추됩니다.이것이 TSLint의 내용입니다.no-inferrable-types
경고:
컴파일러가 쉽게 유추할 수 있는 명시적 유형은 코드를 더 장황하게 만듭니다.
가능성이 없는 한serverId
속성은 처음에는 정의되지 않았지만 나중에 정의될 수 있습니다(예:constructor
함수),number
안전하게 생략할 수 있습니다.
이 방법은 유형이 추론되지 않았기 때문에 실수로 누락될 가능성이 없기 때문에 옵션에서 가장 잘 작동합니다.
위에서 언급한 바와 같이, 기술적으로 중복되고 복잡하다고 간주될 수 있습니다.개인적으로 저는 이 의견에 관심이 없으며 다양한 사소한 워크플로우 이유로 유형과 값을 모두 갖는 것을 선호하며 규칙을 보장하는 수준의 혼란스러운 수준이라고 생각하지 않습니다.사용하지 않으려면 다음과 같이 하십시오.
- open tslint.json
- "해석 불가능한 유형" 특성 찾기
- 더하다
ignore-properties
그것의 배열에.
관련 tslint 문서 https://palantir.github.io/tslint/rules/no-inferrable-types/
tslint가 더 이상 사용되지 않기 때문에 ESLint 솔루션을 찾고 있는 경우 다음 규칙을 ESLint 구성에 추가합니다.
module.exports = {
// ...
rules: {
// ...,
"@typescript-eslint/no-inferrable-types": "off",
...
},
};
이 오류는 의 구성으로 인해 발생합니다.tslint.json
파일.
변수를 다음과 같이 초기화합니다.
serverId = 10;
또는
serverId: number;
또는 에 대한 구성을 설정합니다.no-inferrable-types
tslint.json 파일에 다음과 같이 표시됩니다.
no-inferrable-types: false
불필요하며 새로운 정보를 제공하지 않습니다.기본적으로 "10은 숫자"라는 댓글입니다.
지금 와서 이상할 수도 있지만, 비슷한 오류가 발생하여 각진 앱의 tslint.json 파일에서 "no-inferrable-types" 특성을 찾을 수 없었습니다.애초에 왜 그것이 생성되지 않았는지 모르겠지만, 나는 그것을 여기에 삽입해야 했습니다.
"rules": {
**"no-inferrable-types": false,**
"directive-selector": [
true,
"attribute",
"app",
"camelCase"
],
그리고 나서 그것은 매력적으로 작동했습니다!
추신. 이것은 저와 같은 문제로 고민하고 있는 사람을 위한 것입니다. 아니면 제가 틀렸을 수도 있습니다. 왜냐하면 솔루션 중 아무도 json 파일에서 이 문제를 우리 쪽에서 추가해야 한다고 언급하지 않았기 때문입니다.
소음으로 보일 수도 있습니다.사소한 부분이 아닌 부분을 입력하는 것이 더 중요합니다.
intslint.json 파일에서 이 규칙을 추가하거나 완료합니다.
"no-inferrable-types": [
true,
"ignore-params",
"ignore-properties"
]
파일에서 Tslint.json 파일을 합니다.no-inferrable-types
false
:
"rules": {
...
"no-inferrable-types": false,
...
]
언급URL : https://stackoverflow.com/questions/46799828/tslint-type-trivially-inferred-why-is-it-bad-practice-to-include-the-type-he
'programing' 카테고리의 다른 글
터미널에서 swift를 사용하려면 어떻게 해야 합니까? (0) | 2023.05.27 |
---|---|
깃허브에서 출발지와 상류의 차이점은 무엇입니까? (0) | 2023.05.27 |
하위 모듈을 포함하여 repo를 "git cloning"하려면 어떻게 해야 합니까? (0) | 2023.05.27 |
XAML에 유니코드 문자를 넣는 방법은 무엇입니까? (0) | 2023.05.27 |
iPhone에서 iPad로 스토리보드 변환 (0) | 2023.05.27 |