이
const { foo: IFoo[] } = bar;
이
const { foo: Array<IFoo> } = bar;
합리적으로 오류가 발생합니다.
이
const { foo: TFoo } = bar;
TFoo
재산을 파괴 합니다.
해체 된 객체 속성에 대해 유형을 어떻게 지정할 수 있습니까?
답변
:
전체 디스트 럭처링 패턴에 대해 유형을 지정할 수 있습니다 .
const {foo}: {foo: IFoo[]} = bar;
실제로는 평범한 오래된 것보다 낫지 않습니다.
const foo: IFoo[] = bar.foo;
답변
나는 분명히 파티에 조금 늦었지만 :
interface User {
name: string;
age: number;
}
const obj: any = { name: 'Johnny', age: 25 };
const { name, age }: User = obj;
속성의 종류 name
와는 age
올바르게에 유추해서도 안 string
하고 number
각각.
답변
내 질문에 대한 후속 조치입니다.
유형은 구조화 해제 된 객체에서 유추되기 때문에 객체 속성에 대해 지정할 필요가 없습니다.
bar
올바르게 입력 된 것을 고려하면 foo
유형이 유추됩니다.
const bar = { foo: [fooValue], ... }; // bar type is { foo: IFoo[], ... }
...
const { foo } = bar; // foo type is IFoo[]
bar
올바르게 입력되지 않았 더라도 ( any
또는 unknown
) 유형을 주장 할 수 있습니다.
const { foo } = bar as { foo: IFoo[] }; // foo type is IFoo[]