繁体   English   中英

TypeScript:如何初始化 object 并根据其类型提供一些默认值

[英]TypeScript: how do I initialize an object and give some default values from its type

我有一个名为Obj的接口,它包含一堆boolean

interface Obj {
  isVisited: boolean,
  isChecked: boolean,
  isToggled: boolean
}

我想初始化这个类型的 object 并为它的每个属性分配false

const obj: Obj = {
  isVisited: false,
  isChecked: false,
  isToggled: false
}

我想知道是否有一种编程方式来执行此操作而不是手动将其绑定?

您可以创建一个 class 来实现Obj接口,其属性具有默认值。

class ObjClass implements Obj {
  isVisited: boolean = false;
  isChecked: boolean = false;
  isToggled: boolean = false;
}

const obj = new ObjClass();

现在, obj有 3 个属性,默认值为false

或者,尽量保持简单,您可以创建一个factory function 来创建默认值 object。

function genObjDefault(): Obj {
  return {
    isVisited: false,
    isChecked: false,
    isToggled: false
  }
}

const obj = genObjDefault();

我将 go 反过来:实例化一个 object,然后从 object 中获取类型:

const obj = {
  isVisited: false,
  isChecked: false,
  isToggled: false
}
type Obj = typeof obj;

据我所知,您不能对接口进行默认初始化,但您可以使用如下默认值创建 class。

class TestA {
    private label = "";
    protected value = 0;
    public list: string[] = null;
}

发出 javascript 将是

var TestA = /** @class */ (function () {
    function TestA() {
        this.label = "";
        this.value = 0;
        this.list = null;
    }
    return TestA;
}());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM