提问者:小点点

导出从具有typescript中方法的类派生的常量对象


我对打字稿还是个新手。 我有一个通用类

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

我试图创建一个默认的常量对象,但是遇到了一个问题,因为我没有定义doSomething。 defaultSample不是应该自动继承doSomething的基本功能吗,还是我遗漏了什么?

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

共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,或者您可以在Sample类中创建一个构造函数:

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;

还可以添加用于设置ab的构造函数。

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

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

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

const myDefaultSample = new DefaultSample();