Typescript:无效的“新建”表达式
为了帮助解决这个问题,我正在为库删除typescript定义。给定以下类型脚本代码,为什么编译器输出无效的“new”expression错误 [.] 无效的“new”表达式Typescript:无效的“新建”表达式,typescript,ampersand,Typescript,Ampersand,为了帮助解决这个问题,我正在为库删除typescript定义。给定以下类型脚本代码,为什么编译器输出无效的“new”expression错误 [.] 无效的“new”表达式 我的extend方法是返回一个AmpersandModel实例,而不是ApersandModel的构造函数。更正代码: declare module ampersand { interface AmpersandState { // todo... } interface Amper
我的extend方法是返回一个AmpersandModel实例,而不是ApersandModel的构造函数。更正代码:
declare module ampersand {
interface AmpersandState {
// todo...
}
interface AmpersandCollection {
// todo...
}
interface ModelExtendOptions {
parse?: boolean;
parent?: AmpersandState;
collection?: AmpersandCollection;
}
interface ModelSaveOptions {
patch?: boolean;
}
interface AmpersandModel<T> {
save: (attrs?: T, options?: ModelSaveOptions) => void;
// todo: fetch, destroy, sync, etc...
}
interface AmpersandModelConstructor<T> {
new (attrs: T, options?: ModelExtendOptions): AmpersandModel<T>;
}
interface ExtendOptions {
props?: {};
session?: {};
derived?: {};
}
interface AmpersandModelStatic {
extend: <T>(options: ExtendOptions) => AmpersandModelConstructor<T>;
}
}
declare var AmpersandModel: ampersand.AmpersandModelStatic;
interface PersonProps {
firstName: string;
lastName: string;
}
interface IPerson extends PersonProps, ampersand.AmpersandModel<PersonProps>{}
var Person = AmpersandModel.extend<PersonProps>({ props: { firstName: 'string', lastName: 'string' } });
var me = new Person({ firstName: 'Jeremy', lastName: 'Danyow' });
declare module ampersand {
interface AmpersandState {
// todo...
}
interface AmpersandCollection {
// todo...
}
interface ModelExtendOptions {
parse?: boolean;
parent?: AmpersandState;
collection?: AmpersandCollection;
}
interface ModelSaveOptions {
patch?: boolean;
}
interface AmpersandModel<T> {
save: (attrs?: T, options?: ModelSaveOptions) => void;
// todo: fetch, destroy, sync, etc...
}
interface AmpersandModelConstructor<T> {
new (attrs: T, options?: ModelExtendOptions): AmpersandModel<T>;
}
interface ExtendOptions {
props?: {};
session?: {};
derived?: {};
}
interface AmpersandModelStatic {
extend: <T>(options: ExtendOptions) => AmpersandModelConstructor<T>;
}
}
declare var AmpersandModel: ampersand.AmpersandModelStatic;
interface PersonProps {
firstName: string;
lastName: string;
}
interface IPerson extends PersonProps, ampersand.AmpersandModel<PersonProps>{}
var Person = AmpersandModel.extend<PersonProps>({ props: { firstName: 'string', lastName: 'string' } });
var me = new Person({ firstName: 'Jeremy', lastName: 'Danyow' });