Typescript 扩展接口类型不正确时不抱怨
我测试了这个片段 我希望setTest1()会抱怨,因为Typescript 扩展接口类型不正确时不抱怨,typescript,Typescript,我测试了这个片段 我希望setTest1()会抱怨,因为setTest1()只允许OnlyName作为参数,但是MyTest2被传递,它就工作了 为什么它不抱怨,是否有办法只允许OnlyName?就像@Aleksey L说的,这是因为结构类型系统。 如果将文字对象传递给setTest1,TS将抱怨: setTest1({ 名称:“test2”, age:2,//对象文字只能指定已知属性,并且“age”不存在。。。 }) 您可以找到有关多余属性检查的更多信息否,typescript已 inte
setTest1()
只允许OnlyName
作为参数,但是MyTest2
被传递,它就工作了
为什么它不抱怨,是否有办法只允许
OnlyName
?就像@Aleksey L说的,这是因为结构类型系统。
如果将文字对象传递给setTest1
,TS将抱怨:
setTest1({
名称:“test2”,
age:2,//对象文字只能指定已知属性,并且“age”不存在。。。
})
您可以找到有关多余属性检查的更多信息否,typescript已
interface OnlyName {
name: string
}
interface MyTest2 extends OnlyName {
age: number
}
let test1: OnlyName;
const setTest1 = (v: OnlyName) => {
test1 = v
console.log(test1)
}
let test2: MyTest2 = {
name: 'test2',
age: 2,
}
setTest1(test2)