我在Date對象上創建了一個基本的擴展,它工作正常。下面是我的代碼:'MyObject'類型不存在屬性 - Typescript擴展
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
任何建議大加讚賞
您可能會對接口和類給予不同的名稱。你不能修改類型。你的課是一個價值,可以修改。 –