如何扩展基接口并导出它?例如:
export interface Date {
/**
* Original functions
*/
getTime(): number;
/**
* My extend functions
*/
getId(): number;
}
Date.prototype.getId = function (): number {
return 1;
}
如果我想导出Date原型,我收到错误
[ts]属性'getId'在'Date'类型中不存在。
我只能手动创建d.ts文件
export interface Date {
getTime(): number;
getId (): number;
}
并导入
import {Date} from "myfile";
但它并不酷#/ p>
答案 0 :(得分:2)
如果您想为Date
原型添加方法,则需要Global augmentation:
// myfile.ts
export {}; // you need this so the compiler understands that it's a module.
declare global {
interface Date {
getId(): number;
}
}
Date.prototype.getId = function (): number {
return 1;
}
然后,当您导入此文件时,您应该可以使用getId
:
import "file1";
let d = new Date();
console.log(d.getId());