Eslint는 Typescript 앱의 모든 enum이 이미 상위 범위에서 선언되었다고 말합니다.
새로운 애플리케이션을 기동할 때, eslint 를 인스톨 해, 다음의 설정으로 설정했습니다만, 각 애플리케이션을 작성할 때마다,enum
이미 정의되어 있다고 합니다.말도 안 되는 줄도.다른 변수 유형(const, var, let)에는 이 문제가 없습니다.규칙을 무효로 할 수는 있지만, 실제로 적용되는 상황에 적용했으면 합니다.
{
"root": true,
"parser": "@typescript-eslint/parser",
"plugins": ["@typescript-eslint"],
"parserOptions": {
"project": ["./tsconfig.json"],
"ecmaFeatures": {
"ecmaVersion": 6,
"jsx": true
}
},
"overrides": [],
"extends": [
"airbnb-typescript",
"prettier",
"prettier/@typescript-eslint",
"plugin:@typescript-eslint/recommended-requiring-type-checking"
],
"rules": {
"spaced-comment": 0,
"import/prefer-default-export": 0,
"@typescript-eslint/no-use-before-define": 0,
"@typescript-eslint/restrict-template-expressions": [
1,
{ "allowBoolean": true }
],
"react/jsx-props-no-spreading": "off",
"react/state-in-constructor": 0,
"react/require-default-props": 0,
"react/destructuring-assignment": [
1,
"always",
{
"ignoreClassFields": true
}
]
}
}
TSLint-to-ESLint 사용자인 경우 이는 이후 수정된 오류이므로 스크립트를 새로운 버전으로 다시 실행하면 문제가 해결되거나no-shadow
및 유효하게 하다@typescript-eslint/no-shadow
규칙을 잘못 사용하고 있는 퍼블릭Configuration을 사용하고 있는 경우는, 반드시 그 설정을 통지해 주세요.이것에 아직 접속하고 있는 유저의 수는 다소 큰폭으로 증가하고 있습니다.
FAQ의 이 섹션도 @typescript-eslint/no-shadow를 참조하십시오.
사용방법
{
// note you must disable the base rule as it can report incorrect errors
"no-shadow": "off",
"@typescript-eslint/no-shadow": ["error"]
}
typescript-eslint GitHub 문제를 검색하면 동일한 질문을 하는 많은 사람들이 나타납니다.
Tadhg McDonald-Jensen의 대답은 유용하지만, 한 가지 말해야 할 것이 있다.다음 구성 항목을 직접 쓰기.eslintrc
에러가 보고됩니다.
{
// note you must disable the base rule as it can report incorrect errors
"no-shadow": "off",
"@typescript-eslint/no-shadow": ["error"]
}
다음으로 No-shadow 규칙의 올바른 예를 제시하겠습니다.
{
"rules": {
"no-shadow": "off",
"@typescript-eslint/no-shadow": ["error"]
},
}
TypeScript의 다음 코드에서도 같은 문제가 발생했습니다.
export enum MyEnum {
myValueOne = 'myValue',
myValueTwo = 'myValueTwo', // <-- got "already declared in the upper scope” error
}
export class myValueTwo {
constructor(){}
}
아쉽게도 둘 다rules
또는overrides
문제를 해결하지 못했다
{
"rules": {
"no-shadow": "off",
"@typescript-eslint/no-shadow": ["error"]
},
"overrides": {
"no-shadow": "off",
"@typescript-eslint/no-shadow": ["error"]
},
}
몇 시간 동안 다양한 문제, 질문 및 문서를 확인한 후 다음 웹 사이트의 공식 문서를 발견했습니다.@typescript-eslint/no-shadow
여기 링크가 있습니다.
제가 해야 할 일은 이 모든 것을 추가하는 것입니다.ignoreTypeValueShadow
eslint 옵션@typescript-eslint/no-shadow
.
그림자가 없는 최종 설정은 다음과 같습니다.
{
"overrides": {
"no-shadow": "off",
"@typescript-eslint/no-shadow": ["error", , { "ignoreTypeValueShadow": true }]
},
}
이 오류는 개체 이름을 사용하여 변수를 선언했을 때 발생합니다.개체 이름의 대문자가 아닌 소문자로 변수 이름을 입력하지 않았습니다.파일 유형:유형 파일
솔루션:수정하려면 변수 이름을 소문자로 입력하십시오.
이 Eslint 오류를 생성하는 코드 예:
이것은 Enum:type-file-model.ts 입니다.
public enum TypeFichier {
XML, PDF, IMAGE, ZIP
}
오브젝트 모델 app-file-model.ts 입니다.
import {TypeFile} from 'app/shared/model/enum/type-file.model';
export interface IAppFile {
...
TypeFile?: TypeFile;
}
export class AppFile implements IAppFile{
constructor(
...
public TypeFile?: TypeFile
) {}
}
기본 "규칙"에 이것을 추가하는 것만으로는 충분하지 않은 것 같아서 재정의에서 다시 추가해야 했습니다.
# eslintrc.js
{
"rules": { // Did not work here as intended
"@typescript-eslint/dot-notation": "error",
"no-shadow": "off",
},
"overrides": [
{
"files": [
"*.ts"
],
...
"rules": { // Here it worked
"@typescript-eslint/dot-notation": "error",
"no-shadow": "off",
}
]
}
다음의 설정을 사용해 에러가 표시되지 않게 할 수 있었습니다.
{
"rules": {
"no-shadow": "off",
"@typescript-eslint/no-shadow": ["off"]
}
}
두 경우 모두 "off"를 사용합니다. 제가 읽은 모든 예에서 패턴이 반복되는 것을 알 수 있습니다. 첫 번째 예에서는 "off"를 사용하고 두 번째 예에서는 "error"를 사용합니다.이것이 올바른 방법인지 의심스럽지만, 저는 덮어쓰기조차 하지 않고 다른 방법으로 그 오류를 피할 수 없었습니다.
언급URL : https://stackoverflow.com/questions/63961803/eslint-says-all-enums-in-typescript-app-are-already-declared-in-the-upper-scope
'programing' 카테고리의 다른 글
Wordpress에서 현지화된 스크립트의 Data 매개 변수 업데이트 (0) | 2023.02.27 |
---|---|
sql ignoring 대소문자의 문자열을 비교하는 방법 (0) | 2023.02.27 |
git 정보를 create-react-app에 추가합니다. (0) | 2023.02.27 |
@size(max = value )와 @min(value) 및 @max(value)의 차이 (0) | 2023.02.27 |
mongodb errno:61에 접속할 수 없습니다.접속이 거부되었습니다. (0) | 2023.02.27 |