You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在TypeScript接口中定义多字符串类型的stack字段?

解决方案

根据你的需求,这里提供两种符合场景的简洁实现方式,无需额外定义冗余的IStack接口:

1. 若stack是字符串集合(Set)

你的示例代码中{'php', 'sql'}的写法有误,TypeScript中创建字符串集合需要用new Set()语法。对应的接口定义直接使用内置的Set<string>类型即可:

interface IProject {
  name: string
  description: string
  stack: Set<string> // 直接使用Set<string>类型
  repo?: string
  url?: string
}

// 正确的数组初始化方式
const projects: IProject[] = [
    {name: '', description: '', stack: new Set(['php', 'sql'])}
]

2. 若stack是字符串数组

如果实际场景中你只是需要存储一组字符串(而非严格的集合结构),直接使用string[]类型是最简洁的选择,完全不需要额外定义接口:

interface IProject {
  name: string
  description: string
  stack: string[] // 直接用字符串数组类型
  repo?: string
  url?: string
}

// 数组初始化示例
const projects: IProject[] = [
    {name: '', description: '', stack: ['php', 'sql']}
]

这两种方式都避免了定义冗余的键值对数组类型,既满足类型校验需求,又保持代码简洁。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 11:52:03