使用最少的属性集创建类型

时间:2017-02-21 09:40:12

标签: typescript

我想创建一个Foo类型,其中包含所需的最小属性blah 通过实例:

interface Foo {
    blah: string;
}

f: Foo = {blah: "lol"}

我想要的是,如果属性blah不是,则会提到错误 指定但如果Foo的属性多于blah

,则不会提及错误
f: Foo = {boo: "lol"} // property blah is missing

f: Foo = {blah: "lol", boo: "lol"} // this is fine

总而言之,将我在界面中提到的属性作为一组最小的属性进行总结。

我如何实现这一点(它不适用于我上面提到的Foo界面。)

1 个答案:

答案 0 :(得分:2)

这样做:

interface Foo {
    blah: string;
    [name: string]: string;
}

let f1: Foo = {boo: "lol"} // error
let f2: Foo = {blah: "lol", boo: "lol"} // fine