在TypeScript中使用带接口的默认值

时间:2019-11-14 12:49:16

标签: typescript

当我做这样的事情

interface MyInterface {
 myStringProperty: string = 'str';
 myNumberProperty?: number = 9;
 myMethodProperty(): void
}

我有类似Error image

的错误

基于本文(https://areknawo.com/typescript-introduction-pt2/

我该如何解决?

2 个答案:

答案 0 :(得分:3)

我不确定文章的作者是否至少在操场上尝试过自己的代码。官方3.7.2游乐场不支持(Playground Link)。

很明显,它不起作用,因为接口不是用于定义值,而是用于定义合同。它们可以帮助您(和编译器)进行类型检查,但它们不会添加或更改声明为实现的对象的字段。

答案 1 :(得分:2)

请先阅读官方文档:https://www.typescriptlang.org/docs/handbook/interfaces.html

如果需要默认值,则必须定义一个实现该接口的类:

interface ClockInterface {
    currentTime: Date;
}

class Clock implements ClockInterface {
    currentTime: Date = new Date();
    constructor(h: number, m: number) { }
}