我正在写一个库,我有一个对象,我想让这个库的用户自动完成它的一个属性,但我希望他们也能添加其他字符串,我的类型是:
type Object2 = {
prop: "*" | "line" | "media" | string;
}
在我的IDE(Intellij(上,还编译了我得到的输出:
Object2: {
prop: string;
};
然而,我需要得到的与我定义的"*" | "line" | "media" | string
相同,所以我该怎么办我真的被卡住了
所有字符串文字类型都被吸收到string
中,因为string
是这些文字类型的基类型。
有一种方法可以防止这种情况,但将string
与{}
相交
type Object2 = {
prop: "*" | "line" | "media" | (string & {});
}
游乐场链接
任何字符串仍然可以分配给道具,但您将在VS代码中获得建议。
这里将对此进行讨论。文中还提出了&{}
的解决方案。