Javascript 使用typescript中的方法导出从类派生的常量对象

Javascript 使用typescript中的方法导出从类派生的常量对象,javascript,typescript,Javascript,Typescript,我对打字本有点陌生。我有一个通用类 export class Sample { a: number; b: number; doSomething(): any { // return something } } 我试图创建一个默认的常量对象,但遇到了一个问题,因为我没有定义doSomething。defaultSample是否应该自动继承doSomething的基本功能,或者我是否遗漏了什么 export const defaultSample

我对打字本有点陌生。我有一个通用类

export class Sample {
    a: number;
    b: number;
    doSomething(): any {
        // return something
    }
}
我试图创建一个默认的常量对象,但遇到了一个问题,因为我没有定义doSomething。defaultSample是否应该自动继承doSomething的基本功能,或者我是否遗漏了什么

export const defaultSample: Sample {
    a: 1,
    b: 2
}

嘿,TypeScript类型不提供这样的功能,当您运行代码时,所有类型的TypeScript都会被删除,但您可以这样做以实现所需的功能:

export class Sample {
    a: number;
    b: number;
    doSomething(): any {
        // return something
    }
}
class defaultSample extends Sample {
 a = 1;
 b = 2;
}

const x = new defaultSample()
然后,新类将包含您的a和b以及继承的函数
doSomething
,或者您可以在
示例
类中创建构造函数:

class Sample {
    constructor(a, b) {
      this.a = a;
      this.b = b;
    }
    a;
    b;
    doSomething() {
        // return something
    }
}

export const defaultSample = new Sample(1, 2)

嘿,TypeScript类型不提供这样的功能,当您运行代码时,所有类型的TypeScript都会被删除,但您可以这样做以实现所需的功能:

export class Sample {
    a: number;
    b: number;
    doSomething(): any {
        // return something
    }
}
class defaultSample extends Sample {
 a = 1;
 b = 2;
}

const x = new defaultSample()
然后,新类将包含您的a和b以及继承的函数
doSomething
,或者您可以在
示例
类中创建构造函数:

class Sample {
    constructor(a, b) {
      this.a = a;
      this.b = b;
    }
    a;
    b;
    doSomething() {
        // return something
    }
}

export const defaultSample = new Sample(1, 2)

您在那里做的是说明
defaultSample
的类型。这就是为什么会出现错误

你有两个选择。您可以创建
Sample
的新实例,并将其分配给
defaultSample

export class Sample {
    a: number;
    b: number;
    doSomething(): any {
        // return something
    }
}

const defaultSample = new Sample();
defaultSample.a = 1;
您还可以添加用于设置
a
b
的构造函数

如果您确实想要继承,第二个选项是创建一个类并扩展
Sample
class

export class Sample {
    a: number;
    b: number;
    doSomething(): any {
        // return something
    }
}

class DefaultSample extends Sample {
 a = 1;
 b = 2;
}

const myDefaultSample = new DefaultSample();

您在那里做的是说明
defaultSample
的类型。这就是为什么会出现错误

你有两个选择。您可以创建
Sample
的新实例,并将其分配给
defaultSample

export class Sample {
    a: number;
    b: number;
    doSomething(): any {
        // return something
    }
}

const defaultSample = new Sample();
defaultSample.a = 1;
您还可以添加用于设置
a
b
的构造函数

如果您确实想要继承,第二个选项是创建一个类并扩展
Sample
class

export class Sample {
    a: number;
    b: number;
    doSomething(): any {
        // return something
    }
}

class DefaultSample extends Sample {
 a = 1;
 b = 2;
}

const myDefaultSample = new DefaultSample();

类型在编译时被擦除,所以
:Sample
在运行时对对象没有任何影响。对于继承(原型),您需要
新样本…
类型在编译时被删除,所以
:样本在运行时对对象没有任何影响。对于继承(原型),您需要
newsample…