typescript使用文本|string将类型作为字符串



我正在写一个库,我有一个对象,我想让这个库的用户自动完成它的一个属性,但我希望他们也能添加其他字符串,我的类型是:

type Object2 = {
prop: "*" | "line" | "media" | string;
}

在我的IDE(Intellij(上,还编译了我得到的输出:

Object2: {
prop: string;
};

然而,我需要得到的与我定义的"*" | "line" | "media" | string相同,所以我该怎么办我真的被卡住了

所有字符串文字类型都被吸收到string中,因为string是这些文字类型的基类型。

有一种方法可以防止这种情况,但将string{}相交

type Object2 = {
prop: "*" | "line" | "media" | (string & {});
}

游乐场链接

任何字符串仍然可以分配给道具,但您将在VS代码中获得建议。

这里将对此进行讨论。文中还提出了&{}的解决方案。

相关内容

最新更新