1
저는 typescript를 처음 접했습니다 - 변수 및 범위 문제가 있습니다.TypeScript 패싱 변수
2 가지 공개 방법이 있습니다. 하나는 문자열이 필요합니다. 첫 번째 메서드는 jQuery 클릭 함수 내에서 두 번째를 호출합니다 (즉 this.methodName을 더 이상 사용할 수 없음). 나는 논리적 인 방법으로 범위를 고치려고 시도했지만 TS는 다음과 같이 불평합니다 :
제공된 매개 변수는 호출 대상의 서명과 일치하지 않습니다. '호출'표현식에 대해 오버로드를 선택할 수 없습니다.
public test1() {
//fix scope
var scopeFix =() => this.test2;
$("#test").click(function() {
//this.test2("blah");
//^^^ This doesn't work because "this." is used by jquery
scopeFix("blah");
});
}
public test2(testString:string) {
alert(testString);
}
저는 (JS와 TS를 너무 많이 섞어 놓은 것처럼) 어리석은 것 같습니다 - 어떤 아이디어입니까?
당신이 필요로하는'this' 범위에 대한 참조를 저장하는 로컬을 사용 http://jsfiddle.net/9DjGp/ – asawyer
너무 가까이! 감사합니다. – Richard
물론, 일반적인 질문입니다. 그러나 타이프 스크립트와 아무 관련이 없습니다. typesscript 오류는'scopeFix' 함수가 함수를 반환하는 paramterless 함수이기 때문에 호출 사이트가 틀리므로'fixScope() ('blah');와 같아야합니다. – asawyer