char myArray[100][100] = {[0 ... 99] = {1, 2, 3}}
鉴于上面的代码,即使在返回之前添加了属性,我也会收到上面针对interface ITest {
objKey: {
propA: string;
propB: string;
};
}
const func: ITest = () => { // Error: Property 'objKey' is missing in type '() => {}'
const arr = ["objKey"];
return arr.reduce((obj, name) => {
obj[name] = {
propA: "str1",
propB: "str2"
};
return obj;
}, {});
};
所述的错误。
打字稿是不够聪明,不能推断它们已被添加?有没有办法让它不抛出错误,但确保返回仍然强制执行接口?
答案 0 :(得分:1)
您的函数输入不正确,您可以将参数设置为可选。 如果可以的话,最好使用一个类,如果所有其他方法都失败,则返回空类。
interface ITest {
objKey?: {
propA: string;
propB: string;
};
}
const func = ():ITest => {
const arr = ["objKey"];
return arr.reduce((obj, name) => {
obj[name] = {
propA: "str1",
propB: "str2"
};
return obj;
}, {});
};