Asked May 23rd, 2:26 a.m. 54 0 1
  • 54 0 1
0

typeof array[number][key] not return const

Share
  • 54 0 1
// Code 1
const CuisineTypeOptions: { label: string; value: string }[] = [
  { label: 'Traditional', value: 'traditional' },
  { label: 'Typical', value: 'typical' },
] as const

type Type = (typeof CuisineTypeOptions)[number]['value'] // -> string
// Code 2
const CuisineTypeOptions = [
  { label: 'Traditional', value: 'traditional' },
  { label: 'Typical', value: 'typical' },
] as const

type Type = (typeof CuisineTypeOptions)[number]['value'] // -> 'traditional' | 'typical'

Mình muốn Type hoạt động như Code 2 nhưng sử dụng CuisineTypeOptions ở Code 1 thì có cách nào không nhỉ?

1 ANSWERS


Answered May 23rd, 2:32 a.m.
0
// Code 1
const CuisineTypeOptions: { label: string; value: 'traditional' | 'typical' }[] = [
  { label: 'Traditional', value: 'traditional' },
  { label: 'Typical', value: 'typical' },
] as const

type Type = (typeof CuisineTypeOptions)[number]['value'] // -> 'traditional' | 'typical'
Share
May 23rd, 2:34 a.m.

@umi0063 nếu viết như vậy khi muốn thêm 1 item vào CuisineTypeOptions mình lại phải thêm một giá trị mới cho value á, nó lại mất đi tính tiện lợi ý

0
| Reply
Share
Avatar Chung @umi0063
May 23rd, 2:49 a.m.

@thangly98 giá trị động bạn thêm vào hay có từ trước?

0
| Reply
Share
May 23rd, 3:11 a.m.

@umi0063 có từ trước ạ, nhưng mình phòng hờ giá trị đó sau này lại được thêm nữa

0
| Reply
Share
Viblo
Let's register a Viblo Account to get more interesting posts.