我有这个界面:
interface Metadata {
key: string,
value: string,
option1: string, // optional parameter
option2: string, // optional parameter
option3: string // optional parameter
}
当我尝试以这种方式创建类型化对象时:
const a: Metadata = {key: 'obligatory', value: 'obligatory', option1 : 'optional '};
我收到此错误:
error TS2322: Type '{key: 'obligatory', value: 'obligatory', option1 : 'optional '}' is not assignable to type 'Metadata'.
Property 'option2' is missing in type '{key: 'obligatory', value: 'obligatory', option1 : 'optional '}'.
是否可以创建对象而不必传递所有属性?
最佳答案
添加一个?设置为可选参数在界面内的参数。像option1?: string
等。
关于object - typescript : how to create a typed object without passing all the properties,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48117193/