В качестве примера, скажем, у меня есть этот код:Возможно ли ограничение на контекст функции?
class MyClass {
constructor(public myText: string) {
}
}
// enforce the context to be of type MyClass for this function
function myFunction() {
alert(this.myText);
}
var myObject = new MyClass("Hello");
myFunction.call(myObject); // good
myFunction(); // bad
Есть ли способ, в машинописном, чтобы ограничить переменную this
, чтобы всегда быть объектом класса MyClass
? Это было бы полезно для взлома некоторых ошибок во время компиляции.
Спасибо, и это очень плохо. Было бы здорово определить его как методы расширения C#: 'function myFunction (this myObject: MyClass) {alert (myObject.myText); } ' –
Хорошо, что это поддерживается сейчас. '--noImplicitThis' - тоже полезное дополнение. –
Я не поклонник методов расширения и других глобалов. Мне нравится, когда файл полностью понятен, просто глядя на него на github. Все импорты находятся прямо там, и вы знаете, как * любой * проект * тикает * :) – basarat