本文介绍了Typescript中的联合类型?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
为什么在 TypeScript 中不允许这种类型定义?
Why this defination of type is not allowed in TypeScript?
type profileType = 'TEACHER' | 'PRINCIPAL'; interface FormList { [ key: profileType ] : IForm[]; } let forms: FormList; forms = { 'TEACHER' : [{ id: 1, name: "o" }, { id: 1, name: "b" }] }它在一行中调用错误:[ key: profileType ] : IForm[];.
It invokes an error in line: [ key: profileType ] : IForm[];.
推荐答案您可以将字符串文字从联合映射到新类型.这在打字稿中称为映射类型:>
You can map string literals from union into new type. This is called mapped type in typescript:
type IForm = {}; type ProfileType = 'TEACHER' | 'PRINCIPAL'; type FormList = { [P in ProfileType]: IForm[] }; let forms: FormList; forms = { 'TEACHER': [{ id: 1, name: "o" }, { id: 1, name: "b" }], 'PRINCIPAL': [{ id: 1, name: "o" }, { id: 1, name: "b" }] }更多推荐
Typescript中的联合类型?
发布评论