MDN文档返回类型是否默认非可选?CookieStore.get类型定义咨询
结论先给:不能想当然认为MDN列出的所有返回值都必然存在,得结合规范和实际浏览器行为来定义可选属性。
- MDN文档的标注不一定完全覆盖所有场景:它主要展示常规情况,但像cookie未设置某些属性(比如domain、expires)时,返回的对象里对应的字段就会缺失,MDN可能不会特意标注这些边缘情况。
- 对照Web规范来看:CookieStore接口定义里,Cookie对象的
expires、domain、path、secure、sameSite这些属性都是可选的——只有name和value是必须存在的。 - 实际浏览器行为验证:测试主流浏览器会发现,当cookie没有指定domain、expires等属性时,调用
get方法返回的对象里确实没有这些字段;如果找不到对应名称的cookie,还会返回undefined。
所以你写TS类型的时候,应该把可选属性加上?,同时要考虑get可能返回undefined的情况,示例类型如下:
interface Cookie { name: string; value: string; expires?: number; domain?: string; path?: string; secure?: boolean; sameSite?: "strict" | "lax" | "none"; } interface CookieStore { get(name: string): Promise<Cookie | undefined>; // 你需要的其他方法可以继续补充 }
内容的提问来源于stack exchange,提问作者dwjohnston
相关产品推荐
相关产品推荐

