假设我有一些参数没有被输入(或者至少没有针对我的用例专门输入)的函数,以及我自己定义的一些接口
// f is some function from a JS library
const f = (x: any) => console.log(x);
interface SpecificObject {
a: string;
b: string;
}
我们可以这样做:
const tmpVar: SpecificObject = {a: ""};
f(tmpVar);
编译器正确地给出了一个错误,因为它静态地看到我们的文本中缺少键b
.
但这会创建一个不必要的临时变量tmpVar
.如何在不使用额外变量的情况下获得相同类型的判断行为?
我try 过:
f({a: ""} as SpecificObject);
但这并不会给出错误.as
似乎更像是一个强制类型断言,而不是像上面的变量类型那样进行判断的断言.