Extjs TypeScript中的类型化文字对象

Extjs TypeScript中的类型化文字对象,extjs,typescript,Extjs,Typescript,我有一个包含函数store.add(a:any)的ExtJS的TS定义文件(它有很多重载,所以我想这是为了简化d.TS文件)。我想给它传递一个实现Person接口的文本对象: interface Person { name: string; age: number } store.add(<Person>{ name: "Sam" }); 但是有没有一种不用单独变量就能做到这一点的方法呢 我意识到这可以通过“固定”定义文件来解决,但我认为许多Javascript库有太多的

我有一个包含函数store.add(a:any)的ExtJS的TS定义文件(它有很多重载,所以我想这是为了简化d.TS文件)。我想给它传递一个实现Person接口的文本对象:

interface Person
{
  name: string;
  age: number
}

store.add(<Person>{ name: "Sam" });
但是有没有一种不用单独变量就能做到这一点的方法呢


我意识到这可以通过“固定”定义文件来解决,但我认为许多Javascript库有太多的重载,不允许这样做。我几乎需要一种方法来动态重载函数定义。。!仿制药在这里有用吗?

是的,仿制药似乎是答案。在定义文件更改中:

add?( model:any ): Ext.data.IModel[];

add?(型号:T):Ext.data.IModel[];
允许你打电话

store.add<Person>({ name: "sam" });
store.add({name:“sam”});
它正确地显示了一个错误

add?<T>( model:T ): Ext.data.IModel[];
store.add<Person>({ name: "sam" });