programing

유형을 인덱스 유형으로 사용할 수 없습니다.

css3 2023. 7. 4. 22:02

유형을 인덱스 유형으로 사용할 수 없습니다.

https://www.typescriptlang.org/play/index.html 으로 이동하여 다음을 붙여넣습니다.

let userTypes = {};
let keys = Object.keys[userTypes];

오류 수신:

error TS2538: Type '{}' cannot be used as an index type.

왜요?

Object.keys속성 배열을 반환합니다.개체를 사용하여 배열을 인덱싱할 수 없습니다. 배열의 시작 부분부터 오프셋을 나타내려면 숫자를 사용해야 합니다.

이와 유사한 예로 이 코드가 수행할 작업은 무엇입니까?

var a = [1, 2, 3, 4]
console.log(a[{}]);

말도 안 돼요.

편집: OP의 코멘트를 읽고 코드를 다시 검토한 후, 저는 제 평가가 틀렸다는 것을 깨달았습니다.문제는 원래 코드가 색인화를 시도한다는 것입니다.keys객체 리터럴을 사용하는 함수이며, 실제 문제는 괄호 대신 대괄호를 사용하는 것입니다.이렇게 하면 됩니다.

let keys = Object.keys(userTypes);

이트 콜keys와 함께userTypes그것으로 색인하는 대신에.

가장 간단한 해결책은 빈 문자열을 항목과 함께 추가하는 것입니다.키[인덱스]

let userTypes = {};
let keys = Object.keys[userTypes+''];

*ngFor에서 개체에 keyValue 파이프를 사용하는 경우에도 이 트릭을 사용할 수 있습니다!!

언급URL : https://stackoverflow.com/questions/41400930/type-cannot-be-used-as-an-index-type