TypeScript 주의를 제거하는 방법: 'length' 속성이 '{}' 유형에 없습니다.
TypeScript 파일에서 3D 배열을 정의했습니다.
var myArr = ['one', [[19, 1], [13, 1], [86, 1], [12, 2]],
'two', [[83, 1], [72, 1], [16, 2]],
'three', [[4, 1]]];
function testArray(){
console.log(myArr[1].length);
}
length 속성 아래에 경고가 표시됩니다.
'length' 속성이 '{}' 유형에 없습니다.
이 경고를 제거하기 위해 제가 할 수 있는 일이 있나요?
저는 여기서 비슷한 게시물을 읽었습니다.Typescript를 사용할 때 "Property is not exist on type JQuery" 구문 오류를 중지하려면 어떻게 해야 합니까?
그것은 제가 <아무것이나>에 캐스팅할 수 있다는 것을 설명합니다.
이것은 저에게 효과가 있었습니다.
function testArray(){
console.log((<any>myArr[1]).length);
}
옵션 1: 최첨단 컴파일러로 업그레이드하고 유니온 유형 가져오기
옵션 2: 변수 선언에 유형 주석을 추가합니다.
var myArr: any[] = ['one', [[19, 1], [13, 1], [86, 1], [12, 2]],
'two', [[83, 1], [72, 1], [16, 2]],
'three', [[4, 1]]];
function testArray(){
console.log(myArr[1].length);
}
Object.values() 메서드는 for...in 루프에서 제공하는 것과 같은 순서로 지정된 개체 자체의 열거 가능한 속성 값 배열을 반환합니다. (단 한 가지 차이점은 for...in 루프가 프로토타입 체인의 속성도 열거한다는 것입니다.)
Object.values(myArr).length
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_objects/Object/values
이전에 이 오류에 직면한 적이 있습니다. 유형을 임의로 캐스팅하고 제네릭을 사용할 때 확장해야 합니다.
블로우 예를 확인합니다.
const result = <T extends any>(arr:T[]):T => {
return arr[arr.length - 1]
}
result([1,2,3])
인터페이스/유형/클래스가 이미 구성되어 있고 길이나 다른 것을 원하는 사람들을 위해 제가 사용하는 제안이 있습니다.클래스 안에 인터페이스를 입력하고 아래에 코드를 입력합니다.정의되지 않은 특성에 대해서만 알 수 없음으로 설정됩니다.끝에 둘 필요는 없습니다. 원하는 경우 별도의 인터페이스를 만들고 개체로 확장하는 것이 좋습니다.
export interface x {
...
[props: string]: unknown
...
}
이렇게 하면 개체에 있는 속성 이름을 사용할 수 있습니다. 듣기에 나쁘지만 실제로는 그렇지 않습니다.이는 알 수 없는 각 속성에 대해 강제(T)가 적용되기 때문입니다.S4.4+)를 사용할 때 다른 유형으로 강제 변환합니다(예:
(object.length as number).
가능한 속성 유형을 분석할 때는 더 주의해야 하며 존재하지 않는 속성에 액세스하려고 하지 않습니다.개체 자동 완성에 대해 걱정하지 마십시오. 개체가 계속 정상적으로 작동합니다.
언급URL : https://stackoverflow.com/questions/27089452/how-to-remove-typescript-warning-property-length-does-not-exist-on-type
'programing' 카테고리의 다른 글
Visual Studio 2008에서 JavaScript/jQuery Intellisense를 작동하려면 어떻게 해야 합니까? (0) | 2023.06.07 |
---|---|
JEST가 코드를 실행하고 있는지 여부를 확인하는 방법은 무엇입니까? (0) | 2023.06.07 |
R을 사용하여 지정된 확장자를 가진 모든 파일 나열 (0) | 2023.06.07 |
.xib 파일과 .storyboard의 차이점은 무엇입니까? (0) | 2023.06.02 |
Ruby: require vs require_require_require - Ruby < 1.9.2 및 >= 1.9.2에서 실행되는 문제를 해결하기 위한 모범 사례 (0) | 2023.06.02 |