已知
const arrr: { a: number }[] = [{ a: 1 },{ a: 2 }]
type A = typeof arrr[number]['a'] //此时A为 type A = number
但是我希望能让A的类型推断为1|2
尝试过使用as const
const arrr: Readonly<{ a: number }[]> = [{ a: 1 }, { a: 2 }] as const
但是没有效果
望大佬指点
已知
const arrr: { a: number }[] = [{ a: 1 },{ a: 2 }]
type A = typeof arrr[number]['a'] //此时A为 type A = number
但是我希望能让A的类型推断为1|2
尝试过使用as const
const arrr: Readonly<{ a: number }[]> = [{ a: 1 }, { a: 2 }] as const
但是没有效果
望大佬指点
做个体操
// 我们想要取出值的类型对象
type OrgType = {
OPERATOR: '-2';
SUPERVISION: '-1';
BANK: '1';
MICRO_LOAN: '2';
INSURANCE: '3';
GUARANTEE: '4';
SECURITIES: '5';
ENLENDING: '6';
FINANCE_LEASE: '7';
COMMERCIAL_FACTORING: '8';
EQUITY_MARKET: '9';
ASSETS_MANAGEMENT: '10';
OTHER: '0';
};
// 取出所有的值
type ObjectValues<T extends Record<string, string>> = T extends Record<
infer K,
string
>
? T[K]
: never;
type OrgTypeValues = ObjectValues<OrgType>; // '-2' | '-1' | ......
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答5.2k 阅读✓ 已解决
1 回答3.4k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决