在typescript中创建接口外对象的最佳方法是什么

在typescript中创建接口外对象的最佳方法是什么,typescript,typescript-typings,Typescript,Typescript Typings,我已经使用typescript 1年了,每次我需要一个对象通过时,我都需要用丑陋的方式或手动完成 在typescript中,有用于类型定义的接口,并保存我们需要的所有参数。有没有办法用它来创建对象 例如: export interface User { name: string; email: string; } 我想下面的代码是自动化的,我不能从接口评级器我已经创建了一个构造函数类它 user { name: ''/null/undefined, email: ''/null/u

我已经使用typescript 1年了,每次我需要一个对象通过时,我都需要用丑陋的方式或手动完成

在typescript中,有用于类型定义的接口,并保存我们需要的所有参数。有没有办法用它来创建对象

例如:

export interface User {
  name: string;
  email: string;
}
我想下面的代码是自动化的,我不能从接口评级器我已经创建了一个构造函数类它

user {
 name: ''/null/undefined,
 email: ''/null/undefined
}

let user: User = new User() // this will show error
但是我可以从下面的类中创建一个新对象

export class User {
  constructor() {
    name: string;
    email: string;
  }
}

new User();

哪一个是面糊?创建构造函数类或接口?

是的,可以直接向接口赋值,如果不需要赋值/实例化接口中定义的所有属性,则可以使用
将其标记为可选。在下面的示例中,电子邮件被标记为可选,随后的用户分配将是有效的语句

interface User {
  name: string;
  email?: string;
}

let user: User = { name: '' };

我认为没有办法

接口和类是两个不同的东西,有不同的用例。接口只是一种结构,不能有一个实例,你会看到编译后的typescript,它是由JavaScript生成的,你在任何地方都找不到接口

因此,接口仅在编译时,而不是运行时

但是这些类是运行时的。因此,当您说newuser()时,它将创建该类的实例,就像它在生成的JavaScript中一样

如果抽象类适合您的情况,您还可以探索它。

您可以这样做:

export interface IMyInterface {
  property1: string;
  property2: number;
  property3: boolean;
}

export class MyClass {
  property1: string = '';
  property2: number = 1;
  property3: boolean = false;
  constructor(){}
}
然后实例化:

let newFromInterface = new MyClass();

我通常在共享服务中导出接口和类,然后在我的组件中导入并实例化它们。

你说的“我希望代码自动化”是什么意思?是否要直接为接口赋值而不创建实现的类?是。这可能吗?您也可以使用对象文字语法创建它:
let user:user={name:'',email:'}。很明显,你是唯一一个能决定哪一个更好的人,因为你是唯一一个抱怨这件事正常进行的人。这样我就知道了。还有别的办法吗?如果我的接口中有30个属性,我需要全部编写它们。因为我的界面中都有,有没有一种方法可以让我写一些更简单的东西,而不是像
let user:user={name:'',email:''…}我的问题不同!我试图在接口之外创建对象,而不是可选参数myClass应该实现IMyInterface。否则,IMyInterface和MyClass之间没有连接。