typescript自动初始化interface 所有值为空字串""

wgf4242
  • 90

如题。。。

interface A {
    name: string;
}

怎样自动初始化 interface的对象。里面可能有任意属性。
比如本例的就是
const x:A = { name: ""}

回复
阅读 4k
2 个回答
interface A {
    [key: string]: string;
}
边城
  • 54.8k

interface 声明的时候是不能初始化的,因为所有 interface 在转成 JS 的时候都消失不见。要初始化有两个办法:

  1. 定义一个 interface 的默认实现类,比如 class AImpl implements A { ... }
  2. 定义一个工厂方法来产生默认对象,比如 function createA(): A { ... }

举例:

interface IPerson {
    readonly name: string;
    isMale: boolean;
    age?: number;
}
class Person implements IPerson {
    readonly name: string = "";
    isMale: boolean = false;
    age?: number;
}
function createPerson(): IPerson {
    return {
        name: "",
        isMale: false,
    };
}

打个广告,我的新课:TypeScript从入门到实践 【2020 版】

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏