我有一个包含函数 store.add(a : any) 的 Ext JS 的 TS 定义文件(它有很多重载,所以我想这是为了简化 d.ts 文件)。我想向它传递一个实现 Person 接口的文字对象:
interface Person
{
name: string;
age: number
}
store.add(<Person>{ name: "Sam" });
这给了我智能,但不幸的是,它只是将文字强制转换为 Person,而没有检测到缺失的字段。这可以按我的意愿工作:
var p : Person = { name: "Sam" }; // detects a missing field
store.add(p);
但是有没有办法在没有单独变量的情况下做到这一点?
我意识到这可以通过“固定”定义文件来解决,但我认为许多 Javascript 库有太多的重载,不允许这样做。我几乎需要一种动态重载函数定义的方法..!泛型在这里有帮助吗?