假设我有从 3rd 方库导入的类型 T1
。假设类型 T1
定义为:
type T1 = {
a: number | string
b: 'b1' | 'b2' | 'b3'
c?: boolean
}
现在我想定义类型 T2
如下:
type T2 = {
a: number
b: 'b1' | 'b2'
}
只要需要 T2
类型,就可以使用 T1
类型的对象。
如何在定义 T2 时明确断言这一点,并且如果不是这样,如何让 Typescript 的类型检查器抱怨?
我期待以下内容:
assert_assignable_to<T1, T2>()
我假设我可以使用组合 T2
、T1
和 Omit
从 Pick
构造类型 &
但我想在我的代码中明确断言T2
的实例可以分配给 T1
。
有什么想法吗?
答案 0 :(得分:0)
您可以定义 T2
来扩展 T1
interface T2 extends T1 {
a: number
b: 'b1' | 'b2'
}
如果 T2
不能分配给 T1
,你会得到一个错误