我对打字稿还是个新手。 我有一个通用类
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
,或者您可以在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;
还可以添加用于设置a
和b
的构造函数。
第二个选项是创建一个类并扩展sample
类,如果您确实想要继承。
export class Sample {
a: number;
b: number;
doSomething(): any {
// return something
}
}
class DefaultSample extends Sample {
a = 1;
b = 2;
}
const myDefaultSample = new DefaultSample();