2017-09-23 33 views
5

type foo = Array<{ name: string; test: number; }> türünde bir tür varsa, bu durumda, bu durumda, arabirim içindeki değerlerin türünü almak mümkün olurdu. Anahtarları almak için keyof olduğunu biliyorum, değerler için benzer bir şey var mı?Dizi türü değerlerinin türü nasıl alınır?

+0

'tip foo = Array ' - "nasıl soran bu soru T ", ya da başka bir şey? – user2864740

cevap

4

Eğer { name: string; test: number; } türü ayıklamak için nasıl arıyorsanız, sadece "dizindeki öğenin" için takma adı oluşturabilirsiniz:

type Foo = Array<{ name: string; test: number; }>; 
type FooItem = Foo[0]; 
1

Aleksey yanıtına rağmen, bu genel türün örneğinin, çıkarmak istediğiniz türden en az bir üye göstermesi durumunda, bu üyeye ait typeof ile query the type arasında kullanabileceğinizi bilmek yararlı olabilir. genel Array türü için

herhangi dizi öğeden sorgulanabilir: o arr zamanında boş veya tanımlanmamış olsa bile herhangi bir hata oluşturmaz böylece 27 sadece tasarım sırasında geçerli olan hat enter image description here

Not.

+0

* Şu anda bir jenerik türün paramını çıkarmanın bir yolu yoktur. * Peki, bir dizi için, jenerik tür, herhangi bir endekste üyenin tipiyle aynıdır. dizinlenmiş erişim operatörü. –

+0

@torazaburo, bir dizi üyesi türünü sorgulayarak, Type Type AFAIK'in geçerli sürümünde mümkün olmayan genel dizi türünün kendisinden değil, bu dizi türünün bir örneğinden üye türünü ayıklıyorsunuz. – cvsguimaraes

+0

Çalışma zamanı 'typeof' sonucu ile dizi öğesinin TypeScript türü arasında karışıklık olduğunu düşünüyorum. –