求证该TypeScript接口写法是否正确?重点确认commonNames字段
你的TypeScript接口写法完全正确!
先给你吃个定心丸——你写的Food接口完美匹配你提供的示例对象,尤其是commonNames字段的定义非常准确。
咱们来拆解验证一下:
id: number:对应示例里的数字类型34728,类型匹配毫无问题。url: string:精准对应字符串格式的图片链接,完全符合需求。commonNames: { [index: string]: string[]; }:这个索引签名的设计简直恰到好处:- 键是字符串类型的语言代码(比如
"de"、"en"),和示例里的结构完全对齐; - 值是字符串数组,刚好对应每种语言下的多个通用名称(比如德语的
["Apfel", "Kulturapfel"])。
- 键是字符串类型的语言代码(比如
如果之后你想让语言代码的范围更明确(比如只允许特定几种语言),可以优化成带联合类型的索引:
type LanguageCode = "de" | "en" | "th"; interface Food { id: number; url: string; commonNames: { [key in LanguageCode]?: string[] }; }
不过如果语言代码是动态的、无法提前枚举的,你最开始的写法就是最优解。
内容的提问来源于stack exchange,提问作者Tom




