假设我有一些函数,其参数未键入(或者至少对于我的用例来说没有足够明确的类型)和一些我自己定义的接口
// 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
。如何在不使用额外变量的情况下获得相同的类型检查行为?
我已经尝试过:
f({a: ""} as SpecificObject);
但这并不会给出错误。看起来
as
更像是一种强制类型断言,而不是像上面的变量类型那样进行检查。