2017-10-29 9 views
-3

CefSharp를 사용하여 각도 유형 스크립트 인터페이스로 C# 응용 프로그램을 빌드하는 취미 프로젝트를 개발 중입니다.TypeScript - typescript를 컴파일 한 후 함수를 실행합니다.

현재 웹 소켓을 사용하여 백엔드에 다시 말하면서 C#으로 자체 웹 소켓 구현을 만들었습니다 (이것은 내가 가지고있는 문제의 일부일 수 있습니다). 문제는 사실, 백엔드가 프론트 엔드에서 메시지를받지 못하는 경우가 있습니다. 메시지를 보낸 후 완전히 임의의 메시지를 보내서 고정시켜야합니다 (Chrome에서이 문제가 없었습니다. CefSharp만이이 문제를 가지고 있기 시작했습니다.

이제 CefSharp를 읽고 C#에서 JavaScript 메서드를 실행할 수 있다는 사실을 알게되었습니다.이 메서드는 기본적으로 웹 소켓의 필요성을 해결합니다.

내가 여기서보고있는 유일한 문제는 컴파일 후 TypeScript로 작성된 함수를 실행/찾을 수 없다는 점입니다. TypeScript를 컴파일 한 후에도 여전히 액세스 할 수있는 순수한 JavaScript 함수를 만드는 방법이 있습니까? 그리고 중요하지 않은 JavaScript 함수가 (다른 서비스의 함수처럼) TypeScript 함수를 호출 할 수 있습니까?

또 다른 예는 다음과 같습니다. Chrome 콘솔에서 TypeScript 함수를 실행할 수 있습니까?

+1

을 ES5 컴파일

class Test{ doSomething(){ console.log("hi!") } } 

, 그것은 ** 모든 ** JS입니다. 그것은 TS가 컴파일하는 것입니다. 그것은 tsc가하는 것입니다. – jonrsharpe

+0

컴파일 된 JS에서 특정 함수에 액세스하는 방법에 대한 단서가 없다는 것이 유일한 문제입니다. 찾을 수있는 정보가 많지 않거나 Google 기술에 x가 부족합니다. –

답변

1

typescript 함수가 전역 범위에있는 경우 컴파일 된 javascript 함수도 전역 범위에 있으므로 콘솔에서 호출 할 수 있습니다. importexport 및 모듈을 사용하는 경우 코드는 전역 범위에서 사용할 수 없습니다. 이 경우 웹 소켓이 좋은 생각 인 것 같습니다.

타이프 라이터 컴파일 후 자바 스크립트

var Test = (function() { 
    function Test() { 
    } 
    Test.prototype.doSomething = function() { 
     console.log("hi!"); 
    }; 
    return Test; 
}()); 
브라우저 콘솔에서

또는 C# 응용 프로그램

let t = new Test(); 
t.doSomething();