我可以在外部文件中定义String.prototype方法并将其导入到我需要的位置吗?

时间:2016-03-30 06:14:44

标签: typescript

我想要做的事情我觉得很容易,但显然历史证明不然......

这就是我想做的事情(例如)......

// file1.ts
interface String {
    lastChar(): string
}
String.prototype.lastChar = function(): string {
    return this.substr(-1);
}

// file2.ts
import * from './file1.ts'

let x = 'test';
let y = x.lastChar();
// y = "t";

我想将原型方法存储在一些外部文件中,然后将其导入我需要的几个文件中。目前我有一个巨大的String.prototype方法定义在需要该方法的少数文件的顶部,我想把它从那里拿出来。

希望这是有道理的。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

如果我理解正确,以下代码可以满足您的需求:

file1.ts

interface String
{ 
    lastChar: () => string;
}

String.prototype.lastChar = function(): string {
    return this.substr(-1);
};

file2.ts:

import "./file1";

let s: String = "123";
console.log(s.lastChar()); //outputs 3

希望它有所帮助。