如何基于TypeScript中的接口文件定义创建对象?

用户名

我已经定义了这样的接口:

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何知道何时创建接口与直接在 Typescript 的函数签名中定义对象?

如何基于TypeScript中的const对象创建对象类型?

如何在TypeScript接口对象中定义可选数据?

如何为 props 中传递的对象定义 TypeScript 接口?

如何基于对象的属性创建接口?

如何在TypeScript中基于只读元组动态创建对象?

TypeScript 中的对象接口重定义

如何在TypeScript中为具有可变键控子对象的深层对象定义接口

如何基于接口实现创建新对象

如何在 TypeScript 中定义类的接口?

如何在TypeScript中定义Decorator接口

如何为对象的每个字段定义接口必须是TypeScript中另一个接口的实例?

如何基于现有对象值定义Typescript对象类型?

如何创建接口的对象?

从 JSON 对象创建 typescript 接口

Typescript接口并创建该接口的对象

如何为带有Typescript的对象数组定义接口?

如何为也是对象的构造函数定义Typescript接口?

如何使用TypeScript在接口中定义对象的命名数组?

Typescript - 如何使用接口创建符合不同结构的新对象

Typescript-如何为json对象创建嵌套接口

在React Typescript中为历史对象创建和使用接口?

如何基于Java中的接口对象获取实现类名称

如何创建定义函数的接口,该接口允许在TypeScript中使用任意数量的变量?

在Typescript中定义数组的接口

接口-注册类继承接口以基于该类创建对象

typescript 如何创建通用接口

在TypeScript中推断对象的接口

如何创建包含由另一个接口定义的对象数组的接口?