Typescript 创建具有最小属性集的类型
我想创建类型Typescript 创建具有最小属性集的类型,typescript,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
,使用所需的最小属性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
界面一起工作,如上所述)。这样做可以:
interface Foo {
blah: string;
[name: string]: string;
}
let f1: Foo = {boo: "lol"} // error
let f2: Foo = {blah: "lol", boo: "lol"} // fine
这样做是否可以:
interface Foo {
blah: string;
[name: string]: string;
}
let f1: Foo = {boo: "lol"} // error
let f2: Foo = {blah: "lol", boo: "lol"} // fine
如果我做对了,你可以指定基本上允许用字符串索引对象是的。因为您希望在
Foo
实例中有更多(未知)属性,而不是blah
。因为它们事先不知道,所以你需要使用索引。如果我做对了,你可以指定基本上允许用字符串索引对象。因为您希望在Foo
实例中有更多(未知)属性,而不是blah
。因为它们事先不知道,所以需要使用索引。