반응형
입력된 배열이 비어 있는 초기 상태를 입력하고 초기 상태를 설정합니다.
다음과 같은 스니펫이 있다고 가정합니다.
interface State {
alarms: Alarm[];
}
export default class Alarms extends React.Component<{}, State> {
state = {
alarms: []
};
제가 설정을 하려고 하니까.alarms: []
타이프스크립트는 그것을 좋아하지 않습니다.[] != Alarm[]
사용할 수 있음을 발견했습니다.alarms: new Array<Alarm>()
빈 유형의 배열을 초기화하는 것입니다. 하지만 저는 이 구문이 별로 마음에 들지 않습니다. 더 쉽고 더 나은 접근법이 있습니까?
문제는 클래스에 필드를 만들 때 컴파일러가 해당 필드를 입력한다는 것입니다(예: 초기화 식에서 명시적 유형 또는 유추된 유형 사용).
필드를 다시 선언하려면 유형을 명시적으로 지정해야 합니다.
export default class Alarms extends React.Component<{}, State> {
state: Readonly<State> = {
alarms: []
};
}
또는 생성자에서 상태를 설정합니다.
export default class Alarms extends React.Component<{}, State> {
constructor(p: {}) {
super(p);
this.state = {
alarms: []
};
}
}
배열을 예상 유형으로 캐스트할 수도 있지만 필드가 많은 경우 컴파일러가 개체 리터럴을 확인하도록 하는 것이 좋습니다.
그럴 것이다
alarms: [] as Alarm[]
Typescript를 위해 일하고 당신을 위해 일합니까?
유형스크립트: 유형스크립트 주조 배열에서 배열을 주조하는 방법에 대한 이 질문을 참조하십시오.
선언:
alarms: Array<Alarm>
초기화 상태:
this.setState({
var1:'',
var2:''
});
나는 위의 선언을 선호합니다.
언급URL : https://stackoverflow.com/questions/51305171/typescript-and-react-setting-initial-state-with-empty-typed-array
반응형
'code' 카테고리의 다른 글
함수/메소드가 Mock을 사용하여 호출되지 않았음을 주장합니다. (0) | 2023.07.17 |
---|---|
파이썬에서 어떻게 YAML 매핑을 OrderedDicts로 로드할 수 있습니까? (0) | 2023.07.17 |
장고: 쿼리를 통해 열 값의 합 계산 (0) | 2023.07.17 |
파이프 의존성/요구사항을 나열할 수 있는 방법이 있습니까? (0) | 2023.07.17 |
pandas.read_message 매개 변수 "sheet_name"이(가) 작동하지 않습니다. (0) | 2023.07.17 |