TypeScript如何将类型设为接口的属性类型?
复用已有接口属性类型的实现方法
当然可行,TypeScript支持直接提取已有接口(包括外部库提供的接口)中某个属性的类型,不用额外定义中间类型。
你只需要使用索引访问类型的语法,把原来的ExampleInterface.someItem改成ExampleInterface['someItem']即可:
原接口(自定义或外部库接口):
interface ExampleInterface { someItem: 'a' | 'b' | 'c' anotherItem: boolean lastItem: string }
修改后的目标接口:
interface ExampleInterface2 { newItem: ExampleInterface['someItem'] // 类型自动推导为 'a' | 'b' | 'c' }
这种写法的逻辑是通过方括号包裹属性名字符串,直接从目标类型中提取对应属性的类型。对于外部库的接口,只要你能正确导入并访问到该接口,就可以用同样的方式复用其属性类型,完全不需要提前单独定义属性的类型。
内容的提问来源于stack exchange,提问作者Jamie
相关产品推荐
相关产品推荐

