To
const { foo: IFoo[] } = bar;
i to
const { foo: Array<IFoo> } = bar;
spowoduje błąd.
I to
const { foo: TFoo } = bar;
po prostu zniszczy TFoo
własność.
W jaki sposób można określić typy dla właściwości zniszczonych obiektów?
typescript
destructuring
Estus Flask
źródło
źródło
bar
?Odpowiedzi:
Okazuje się, że można określić typ po
:
dla całego wzoru destrukturyzacji:Co w rzeczywistości nie jest lepsze niż zwykły stary
źródło
{foo}
nie jest wartością. Jest to tak zwany „dekonstruujący wzorzec przypisania”. To, co tu widzisz, jest w rzeczywistości specjalną funkcją TypeScript, która umożliwia skojarzenie typów z takimi wzorcami.let x, y, z: string
którego najwyraźniej określaz
tylko typ . Zaktualizowałem odpowiedź.Wyraźnie spóźniłem się na imprezę, ale:
Rodzaje właściwości
name
iage
powinny być prawidłowo wywnioskowanestring
inumber
odpowiednio.źródło
Kontynuacja mojego własnego pytania.
Typów nie trzeba określać we właściwościach obiektu, ponieważ są one wywnioskowane na podstawie zniszczonego obiektu.
Biorąc pod uwagę, że
bar
został wpisany poprawnie,foo
zostanie wywnioskowany typ:Nawet jeśli
bar
nie został poprawnie wpisany (any
lubunknown
), jego typ można potwierdzić:źródło