打字稿覆盖深键
Typescript override deep key
假设我有这样一个界面
interface Theme {
a: {
b?: {
c: CustomType;
}
}
...
}
如何将这个主题界面覆盖到一个新的界面中,并将 b 更改为始终定义? (删除 ?
)显然我想保持其他一切不变。
编辑:我无权访问 CustomType
因为 parameter?: type
是 parameter: type | undefined
的 shorthand 你可以 :
interface Theme1 extends Theme {
a: {
b: {
c: CustomType;
}
}
}
试试这个:
type NewTheme = Theme & {
a: {
b: NonNullable<Theme['a']['b']>
}
}
假设我有这样一个界面
interface Theme {
a: {
b?: {
c: CustomType;
}
}
...
}
如何将这个主题界面覆盖到一个新的界面中,并将 b 更改为始终定义? (删除 ?
)显然我想保持其他一切不变。
编辑:我无权访问 CustomType
因为 parameter?: type
是 parameter: type | undefined
的 shorthand 你可以
interface Theme1 extends Theme {
a: {
b: {
c: CustomType;
}
}
}
试试这个:
type NewTheme = Theme & {
a: {
b: NonNullable<Theme['a']['b']>
}
}