我有一个具有两个属性的对象:type
和position
.type
属性的值可以是‘a’或‘b’.如果type
为‘a’,则position
属性的类型应为"top" | "bottom"
;如果type
为‘b’,则为"left" | "right"
.
type Height = { type: 'a'; position: 'top' | 'bottom' };
type Width = { type: 'b'; position: 'left' | 'right' };
type MyObject = Height | Width;
export const myObj: MyObject = {
position: 'right',
type: 'a',
};
代码本身是正确的,如果值position
与值type
不兼容,则会显示错误.但是,当我try 访问myObj
的position
属性时,无论type
属性的值是多少,IntelliSense都会向我显示position
属性的所有可能选项.
有没有办法确保智能感知只显示与type
属性相关的选项?也就是说,当type
是‘a’时,IntelliSense应该只显示"top" | "bottom"
的选项,而当type
是‘b’时,IntelliSense应该只显示"left" | "right"
的选项.