属性 在类型 'MyObject' 上不存在 - Typescript 扩展
Property does not exist on type 'MyObject' - Typescript extension
我在 Date 对象上创建了一个基本扩展,它工作正常。以下是我的代码:
date.extensions.ts
export {}
declare global {
interface Date {
toSQLiteString(): string;
}
}
Date.prototype.toSQLiteString = function() {
let tzo = -this.getTimezoneOffset();
let dif = tzo >= 0 ? '+' : '-';
let pad = function(num) {
let norm = Math.abs(Math.floor(num));
return (norm < 10 ? '0' : '') + norm;
};
return this.getFullYear() +
'-' + pad(this.getMonth() + 1) +
'-' + pad(this.getDate()) +
'T' + pad(this.getHours()) +
':' + pad(this.getMinutes()) +
':' + pad(this.getSeconds()) +
dif + pad(tzo / 60) +
':' + pad(tzo % 60);
};
现在,我想在自定义对象上创建一个扩展文件,我们将其命名为 MyModel。这个对象是在另一个文件中定义的,看起来像这样(非常简单的例子)
export class MyObject {
id: number = 0;
name: string = ''
}
现在我想创建一个名为 MyObject.extensions.ts 的文件并具有扩展功能,所以我创建了这个并且文件看起来像这样
import { MyObject } from './my-object.ts'
export {}
declare global {
interface MyObject {
getIdAndName(): string;
}
}
MyObject.prototype.getIdAndName = function() {
return this.id + ' - ' + this.name;
};
但是,由于某种原因,我收到了打字稿错误
但是,如果我删除文件顶部的 import
,错误就会消失,但我会得到一个不同的错误,如下所示
我正在使用打字稿 2.4.2
非常感谢任何建议
您的 class 不在模块中的全局命名空间中,您应该扩展模块声明:
import { MyObject } from './my-object'
export {}
declare module './my-object' {
interface MyObject {
getIdAndName(): string;
}
}
MyObject.prototype.getIdAndName = function() {
return this.id + ' - ' + this.name;
};
同时从模块导入中删除 .ts
扩展。
我在 Date 对象上创建了一个基本扩展,它工作正常。以下是我的代码:
date.extensions.ts
export {}
declare global {
interface Date {
toSQLiteString(): string;
}
}
Date.prototype.toSQLiteString = function() {
let tzo = -this.getTimezoneOffset();
let dif = tzo >= 0 ? '+' : '-';
let pad = function(num) {
let norm = Math.abs(Math.floor(num));
return (norm < 10 ? '0' : '') + norm;
};
return this.getFullYear() +
'-' + pad(this.getMonth() + 1) +
'-' + pad(this.getDate()) +
'T' + pad(this.getHours()) +
':' + pad(this.getMinutes()) +
':' + pad(this.getSeconds()) +
dif + pad(tzo / 60) +
':' + pad(tzo % 60);
};
现在,我想在自定义对象上创建一个扩展文件,我们将其命名为 MyModel。这个对象是在另一个文件中定义的,看起来像这样(非常简单的例子)
export class MyObject {
id: number = 0;
name: string = ''
}
现在我想创建一个名为 MyObject.extensions.ts 的文件并具有扩展功能,所以我创建了这个并且文件看起来像这样
import { MyObject } from './my-object.ts'
export {}
declare global {
interface MyObject {
getIdAndName(): string;
}
}
MyObject.prototype.getIdAndName = function() {
return this.id + ' - ' + this.name;
};
但是,由于某种原因,我收到了打字稿错误
但是,如果我删除文件顶部的 import
,错误就会消失,但我会得到一个不同的错误,如下所示
我正在使用打字稿 2.4.2
非常感谢任何建议
您的 class 不在模块中的全局命名空间中,您应该扩展模块声明:
import { MyObject } from './my-object'
export {}
declare module './my-object' {
interface MyObject {
getIdAndName(): string;
}
}
MyObject.prototype.getIdAndName = function() {
return this.id + ' - ' + this.name;
};
同时从模块导入中删除 .ts
扩展。