You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

TypeScript中如何从自定义类型提取嵌套属性类型?

解决方案:从已有类型中提取属性类型作为函数参数类型

当然可以实现这个需求!在TypeScript里,你可以利用索引访问类型(Index Access Types)来提取已有类型中某个属性的类型,完美替代直接写string[]的写法。

具体用法

你只需要用目标类型名加上方括号,把属性名以字符串字面量的形式放在括号里就行(注意属性名必须加引号)。对应到你的代码,就是把string[]替换成Inputs['items']

type Inputs = { foo: string; items: string[]; };
// 用索引访问类型提取Inputs中items的类型
const myFunction = (items: Inputs['items']) => { 
  // ... 你的函数逻辑
}

为什么这么写更好

这种写法的优势在于可维护性:如果以后你修改了Inputsitems的类型(比如从string[]改成number[]或者自定义数组类型),函数参数的类型会自动同步更新,不需要你手动修改函数的类型定义,减少了重复代码和出错的概率。

内容的提问来源于stack exchange,提问作者Evanss

火山引擎 最新活动