我已经定义了这样的接口:
interface IModal {
content: string;
form: string;
href: string;
$form: JQuery;
$message: JQuery;
$modal: JQuery;
$submits: JQuery;
}
我定义一个这样的变量:
var modal: IModal;
但是,当我尝试设置模式属性时,会给我一条消息,内容是
"cannot set property content of undefined"
使用接口描述我的模态对象可以吗?如果是,我应该如何创建它?
如果要在其他地方创建“模式”变量,并想告诉TypeScript全部完成,则可以使用:
declare const modal: IModal;
如果要创建一个实际上将是TypeScript中IModal实例的变量,则需要完全定义它。
const modal: IModal = {
content: '',
form: '',
href: '',
$form: null,
$message: null,
$modal: null,
$submits: null
};
使用类型断言还是说谎,但是您将失去类型安全性,因为在访问modal.content
等(合同规定的属性将存在)时,您现在会在意外的地方变得不确定,甚至可能在运行时错误,这是不确定的。
const modal = {} as IModal;
示例类
class Modal implements IModal {
content: string;
form: string;
href: string;
$form: JQuery;
$message: JQuery;
$modal: JQuery;
$submits: JQuery;
}
const modal = new Modal();
您可能会认为“嘿,这实际上是界面的重复”-您是正确的。如果Modal类是IModal接口的唯一实现,则您可能希望完全删除该接口并使用...
const modal: Modal = new Modal();
而不是
const modal: IModal = new Modal();
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句