Saya minta maaf atas judul yang buruk, saya tidak yakin bagaimana menggambarkan situasi dan mungkin itu sebabnya saya masih belum menemukan solusinya

Saya memiliki antarmuka

interface Fields {
  name: string
  age: number
}

Dan saya ingin mengekstrak tombol untuk membuat tipe, misalnya

type FieldList = ?

// expected result
// type FieldList = 'name' | 'age'

Dan pada waktu lain saya ingin menggunakan tipe yang diekstrak untuk membuat array

const list: FieldList = ['name', 'age']

TS Playground.

0
Yung Silva 28 Mei 2021, 23:51

1 menjawab

Jawaban Terbaik

Saya melihat dua pertanyaan (atau mungkin tiga).

Bagaimana cara mendapatkan kunci jenis?

type FieldList = keyof Fields;

FieldList sekarang a string literal union - 'name' | 'age';

Bagaimana cara mendapatkan array yang berisi tombol-tombol tipe?

Itu tidak mungkin - Anda tidak dapat "mewujudkan" tipe menjadi nilai.

Bagaimana cara mendapatkan tipe array yang hanya dapat berisi kunci jenis lain?

Itu hanya FieldList[].

const list: FieldList[] = ['name', 'age']; // ok

const badList: FieldList[] = ['address']; // error
0
rsmeral 28 Mei 2021, 21:05