限制打字稿接口不具有来自父级的少量属性
Restrict typescript interface to not have few properties from parent
我有两个打字稿界面如下:
interface A {
elem1: string;
elem2: string;
elem3: string;
elem4: string;
}
interface B extends A {
elem5: string;
}
现在我希望当我定义一个 B
类型的变量时,它不应该有来自接口 A 的 elem1
和 elem2
。
打字稿有办法做到这一点吗?
Omit Keys 是你的朋友。它是一种实用类型,通过省略提供的键来构造类型。
这是一个例子
interface A {
elem1: string;
elem2: string;
elem3: string;
elem4: string;
}
interface B extends Omit<A, "elem1" | "elem2"> {
elem5: string;
}
// Error
const b: B = {
elem2: 'sdsd',
elem3: 'wewe',
elem4: 'wewe',
elem5: 'wewe',
}
// OK
const b1: B = {
elem3: 'wewe',
elem4: 'wewe',
elem5: 'wewe',
}
我有两个打字稿界面如下:
interface A {
elem1: string;
elem2: string;
elem3: string;
elem4: string;
}
interface B extends A {
elem5: string;
}
现在我希望当我定义一个 B
类型的变量时,它不应该有来自接口 A 的 elem1
和 elem2
。
打字稿有办法做到这一点吗?
Omit Keys 是你的朋友。它是一种实用类型,通过省略提供的键来构造类型。
这是一个例子
interface A {
elem1: string;
elem2: string;
elem3: string;
elem4: string;
}
interface B extends Omit<A, "elem1" | "elem2"> {
elem5: string;
}
// Error
const b: B = {
elem2: 'sdsd',
elem3: 'wewe',
elem4: 'wewe',
elem5: 'wewe',
}
// OK
const b1: B = {
elem3: 'wewe',
elem4: 'wewe',
elem5: 'wewe',
}