假设我有一些函数的参数未键入(或者至少对于我的用例来说没有足够明确的类型)以及我自己定义的一些接口
// 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
更像是一种强制类型断言,而不是像上面的变量类型那样进行检查。