Tôi đang cố gắng viết lại một số mã JavaScript của mình trong TypeScript. Một số mã này có tham chiếu đến một phần mở rộng mà tôi đã thêm vào nguyên mẫu đối tượng chuỗi.Mở rộng các loại cơ bản trong TypeScript, lỗi: "_không được xác định ..."
String.prototype.format = function() {
var formatted = this;
for (var i = 0; i < arguments.length; i++) {
formatted = formatted.replace(
RegExp("\\{" + i + "\\}", 'g'), arguments[i].toString());
}
return formatted;
};
Tuy nhiên việc thêm tập lệnh kiểu này lại khá khó khăn.
Tôi đã xem các ví dụ nơi bạn khai báo một phần mở rộng của giao diện cơ bản sau đó gán một hàm cho mẫu thử nghiệm để khớp với giao diện và cung cấp chức năng của bạn. Giống như rất ...
interface String {
showString:() => string;
}
String.prototype.showString =(): string {
return this;
};
Trừ lỗi này vì "_this không được định nghĩa ..."
Những điều khác tôi đã cố gắng là để tạo ra một lớp mới để mở rộng chuỗi ...
export class MoreString extends string {
}
Tuy nhiên điều này cũng không hoạt động vì bạn chỉ có thể mở rộng lớp và chuỗi/Chuỗi không phải là lớp học mà được xây dựng trong các loại.
Cách đơn giản nhất để mở rộng Chuỗi và truy cập vào phương pháp mở rộng của tôi là gì?
Nhưng nơi ở mã bạn thêm định nghĩa này? bởi vì tôi nhận được thuộc tính 'myExtension' không tồn tại trên loại 'Chuỗi', vì vậy nó không được biên dịch. Tôi có đoạn mã bên trong định nghĩa mô-đun. – Oscar
Điều này làm việc cho tôi, TANKS! – Benoit
@Oscar cùng, không hoạt động trên mỏ –