Typescript对象或类:类实现接口时不可能有其他属性?
我想知道,当typescript类实现接口时,为什么不可能在该类中实现其他属性或函数。。。它说:…Typescript对象或类:类实现接口时不可能有其他属性?,typescript,class,interface,extension-methods,Typescript,Class,Interface,Extension Methods,我想知道,当typescript类实现接口时,为什么不可能在该类中实现其他属性或函数。。。它说:…“Object literal只能指定已知的属性,而“FirstName”不存在于类型perinterface”。。 我认为在java中,也可以实现其他道具或函数,implementas接口只是类的一个强制性子集,而不是一个限制。。这种行为在打字脚本中正常吗 interface persInterface { lastName: String, sayHello:
“Object literal只能指定已知的属性,而“FirstName”不存在于类型perinterface”
。。
我认为在java中,也可以实现其他道具或函数,implementas接口只是类的一个强制性子集,而不是一个限制。。这种行为在打字脚本中正常吗
interface persInterface {
lastName: String,
sayHello: () => number
}
var person: persInterface = {
FirstName:"Tom",
lastName:"Hanks",
sayHello: ()=>{ return 10} ,
};
您讨论了实现接口的类,但示例代码没有这样做,它只有一个对象文本。使用该对象文字,您已经定义它将完全是一个persInterface,这就是为什么您在尝试添加不属于persInterface的属性时出错的原因 如果您确实尝试拥有一个实现接口的类,那么您可以做您想要做的事情,而不会出现任何类型错误(): 如果您使用的是文字,那么您需要创建一个从基本接口扩展而来的接口,并指定额外的属性:
interface persInterface {
lastName: string,
sayHello: () => number
}
interface persPlusPlus extends persInterface {
lastName: string
}
const person: persPlusPlus = {
firstName:"Tom",
lastName:"Hanks",
sayHello: ()=> { return 10; } ,
};
是的,你是对的,对不起,我指的是对象,我修改了我的问题,所以这正好定义了我想要的对象,但不可能在我的接口上扩展我的对象,对吧?你可以创建一个从另一个接口扩展的接口,然后说你的对象文字就是那种扩展类型。我加了一个例子。
interface persInterface {
lastName: string,
sayHello: () => number
}
interface persPlusPlus extends persInterface {
lastName: string
}
const person: persPlusPlus = {
firstName:"Tom",
lastName:"Hanks",
sayHello: ()=> { return 10; } ,
};