형식 지정 함수에 '이것'의 유형을 선언하는 것은?
나는 TypeScript에서 투덜거리는 작업을 쓰고 있다.나는 자바스크립트에 이미 가지고 있는 것을 번역하려고 해.
그래서 그룬트가 작업을 실행하면 함수를 실행한다.실행 시 그룬트가 설정됨this
jQuery가 과부하하는 것과 같은 방식으로 유용한 속성이 있는 객체로this
당신이 작업하는 요소와 함께.다음과 같은 유용한 속성에 액세스할 수 있다.this.files
;
grunt.registerMultiTask('clean', function() {
this.files.forEach(function(f) { Delete(f); });
});
"모든 파일 삭제"this.files
".
그러나, TypeScript에서, 나는 당신이 그 컴파일러를 'hint'할 수 있는지 모르겠다.this
특별한 타입이라 난 무감각하지 않아TypeScript를 고려하도록 지시하는 방법this
다른 타입이 되려고?
이제(TS 2.0에서) 함수의 값을 지정할 수 있다.this
가짜 이 매개 변수를 사용하여 타이핑하십시오(첫 번째 매개 변수가 되어야 함).
grunt.registerMultiTask('clean', function(this: SomeType) {
//...
});
this
매개 변수는 함수의 매개 변수 목록에서 가장 먼저 나타나는 가짜 매개 변수임
자세한 내용은 여기를 참조하십시오.
TypeScript를 다른 유형으로 간주하도록 지시하는 방법
당신은 그것을 할 수 있다.this
매개 변수사용 사례에 대해 추가했다.this: {files:any[]}
:
grunt.registerMultiTask('clean', function(this: {files:any[]}) {
this.files.forEach(function(f) { Delete(f); });
});
더
이제 이것으로 가능하단 걸 알게 되었소.
class ClassyClass {
prop = 'Juicy Strings'
}
function x( this: ClassyClass ) {
console.log( this.prop )
}
나는 논쟁에서 부동산을 차지하지 않는 대안을 선호하게 되었다.
function x() {
const that: ClassyClass = this
console.log( that.prop )
}
나는 약간의 대답이 있다.나는 이것을 할 수 있다.
var self = <grunt.task.IMultiTask<string>>this;
self.files.forEach(function (f) {
});
잘 먹히네.화살표 기능을 쓸 수 없는 것과 같은 결과를 가져올 겁니다.
참조URL: https://stackoverflow.com/questions/28920753/declaring-the-type-of-this-in-a-typescript-function
'programing' 카테고리의 다른 글
공리에서 "이전" 콜백을 구현하는 방법 (0) | 2022.03.09 |
---|---|
기본 반응 보기에 레이아웃 강제 적용 (0) | 2022.03.09 |
웹 팩 개발 서버에서 모든 경로에 대해 index.html을 제공하도록 지시하는 방법 (0) | 2022.03.09 |
vue.js 2의 수업에서 어떻게 조건을 추가할 수 있을까? (0) | 2022.03.09 |
Vue 2방향 프로펠러 바인딩 (0) | 2022.03.09 |