NativeScript+TypeScript를 사용하여 정의되지 않은 Java의 클래스를 호출하려면
3850 단어 TypeScriptNativeScript
예컨대
com.google.firebase.iid.FirebaseInstanceId.getInstance().getToken();
사용하고 싶습니다.IDE 등으로 직접 기술하면...
"Canot find name'com"오류가 발생했습니다.
NativeScript에서는 실행 시 모든 Java API를 호출할 수 있지만 TypeScript에서 컴파일 오류가 발생합니다.이럴 때는 다음 순서에 따라 사용할 수 있다.
포장재 선언 및 사용(손쉽게 사용하려는 경우) declare let com:any;
그게 다야.com 패키지는 컴파일 검사를 통과하기 위해ny형으로 성명될 것입니다.Type Script 검사 같은 건 필요 없으니까 바로 사용하고 싶어요!이럴 때 추천.저도 자주 씁니다.그러나 이후 설명한 바와 같이 다소 위험성이 있으므로 하고 있는 일을 이해한 후 사용하십시오.
TypeScript의 정의 파일을 만듭니다.
firebase.d.ts
declare module com {
module google {
module firebase {
module iid {
export class FirebaseInstanceId {
static getInstance(): any;
}
}
}
}
}
module 정의의 플러그인에 이름 공간을 설명하고 사용할 방법 정의 (getInstance) 를 추가했습니다.반환 값을ny로 설정하여 함수의 반환 값인 TypeScript에 대한 확인이 유효하지 않습니다.
정의 파일 불러오기
프로젝트 노선의references입니다.d.ts에 다음 정의를 추가합니다.
references.d.ts/// <reference path="./firebase.d.ts" />
호출
준비됐습니다.
다음과 같이 호출할 수 있습니다.let refreshedToken = com.google.firebase.iid.FirebaseInstanceId.getInstance().getToken();
어느 것이 좋아요?
Type Script의 정의 파일을 만드는 것은 처음any 선언 방식에 비해 번거로울 수 있다고 생각합니다.
다른 서류로 싸서 포장을 선언하는 데 시간이 많이 걸린다.자신의 앱에서만 사용한다면 그럴 필요가 없을지도 모른다.다만, 외부인이 사용하는 프로그램 라이브러리와 플러그인을 만들 때는 이쪽 방식이 좋겠죠.사용 가능한 API를 명확히 정의할 수도 있고, 유효하게 유형 + IDE 보완을 하여 사용자가 안전하게 사용할 수 있도록 할 수도 있다.
반대로 any선언을 하면 방법명칭이 틀리든 파라미터의 유형이 일치하든 컴파일링이 통과되고 실행할 때 붕괴될 위험이 있어 팩스를 다시 보내기 어렵다.
예컨대 아래의com.google.〜섹션'googl' 을 써도 'and' 가 'com' 을 성명할 때 아무런 오류도 발생하지 않습니다.let refreshedToken = com.googl.firebase.iid.FirebaseInstanceId.getInstance().getToken()
// ↑通ってしまう
TypeScript의 정의 파일을 만드는 경우 googl이라는 모듈이 없습니다!의 컴파일 오류를 미리 발견할 수 있습니다.
장점과 단점을 이해하고 사용하세요.
Enjoy NativeScript!
Reference
이 문제에 관하여(NativeScript+TypeScript를 사용하여 정의되지 않은 Java의 클래스를 호출하려면), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hosikiti/items/91f185ce243807173bf4
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
declare let com:any;
firebase.d.ts
declare module com {
module google {
module firebase {
module iid {
export class FirebaseInstanceId {
static getInstance(): any;
}
}
}
}
}
module 정의의 플러그인에 이름 공간을 설명하고 사용할 방법 정의 (getInstance) 를 추가했습니다.반환 값을ny로 설정하여 함수의 반환 값인 TypeScript에 대한 확인이 유효하지 않습니다.정의 파일 불러오기
프로젝트 노선의references입니다.d.ts에 다음 정의를 추가합니다.
references.d.ts/// <reference path="./firebase.d.ts" />
호출
준비됐습니다.
다음과 같이 호출할 수 있습니다.let refreshedToken = com.google.firebase.iid.FirebaseInstanceId.getInstance().getToken();
어느 것이 좋아요?
Type Script의 정의 파일을 만드는 것은 처음any 선언 방식에 비해 번거로울 수 있다고 생각합니다.
다른 서류로 싸서 포장을 선언하는 데 시간이 많이 걸린다.자신의 앱에서만 사용한다면 그럴 필요가 없을지도 모른다.다만, 외부인이 사용하는 프로그램 라이브러리와 플러그인을 만들 때는 이쪽 방식이 좋겠죠.사용 가능한 API를 명확히 정의할 수도 있고, 유효하게 유형 + IDE 보완을 하여 사용자가 안전하게 사용할 수 있도록 할 수도 있다.
반대로 any선언을 하면 방법명칭이 틀리든 파라미터의 유형이 일치하든 컴파일링이 통과되고 실행할 때 붕괴될 위험이 있어 팩스를 다시 보내기 어렵다.
예컨대 아래의com.google.〜섹션'googl' 을 써도 'and' 가 'com' 을 성명할 때 아무런 오류도 발생하지 않습니다.let refreshedToken = com.googl.firebase.iid.FirebaseInstanceId.getInstance().getToken()
// ↑通ってしまう
TypeScript의 정의 파일을 만드는 경우 googl이라는 모듈이 없습니다!의 컴파일 오류를 미리 발견할 수 있습니다.
장점과 단점을 이해하고 사용하세요.
Enjoy NativeScript!
Reference
이 문제에 관하여(NativeScript+TypeScript를 사용하여 정의되지 않은 Java의 클래스를 호출하려면), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hosikiti/items/91f185ce243807173bf4
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
/// <reference path="./firebase.d.ts" />
준비됐습니다.
다음과 같이 호출할 수 있습니다.
let refreshedToken = com.google.firebase.iid.FirebaseInstanceId.getInstance().getToken();
어느 것이 좋아요?
Type Script의 정의 파일을 만드는 것은 처음any 선언 방식에 비해 번거로울 수 있다고 생각합니다.
다른 서류로 싸서 포장을 선언하는 데 시간이 많이 걸린다.자신의 앱에서만 사용한다면 그럴 필요가 없을지도 모른다.다만, 외부인이 사용하는 프로그램 라이브러리와 플러그인을 만들 때는 이쪽 방식이 좋겠죠.사용 가능한 API를 명확히 정의할 수도 있고, 유효하게 유형 + IDE 보완을 하여 사용자가 안전하게 사용할 수 있도록 할 수도 있다.
반대로 any선언을 하면 방법명칭이 틀리든 파라미터의 유형이 일치하든 컴파일링이 통과되고 실행할 때 붕괴될 위험이 있어 팩스를 다시 보내기 어렵다.
예컨대 아래의com.google.〜섹션'googl' 을 써도 'and' 가 'com' 을 성명할 때 아무런 오류도 발생하지 않습니다.let refreshedToken = com.googl.firebase.iid.FirebaseInstanceId.getInstance().getToken()
// ↑通ってしまう
TypeScript의 정의 파일을 만드는 경우 googl이라는 모듈이 없습니다!의 컴파일 오류를 미리 발견할 수 있습니다.
장점과 단점을 이해하고 사용하세요.
Enjoy NativeScript!
Reference
이 문제에 관하여(NativeScript+TypeScript를 사용하여 정의되지 않은 Java의 클래스를 호출하려면), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hosikiti/items/91f185ce243807173bf4
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
let refreshedToken = com.googl.firebase.iid.FirebaseInstanceId.getInstance().getToken()
// ↑通ってしまう
Reference
이 문제에 관하여(NativeScript+TypeScript를 사용하여 정의되지 않은 Java의 클래스를 호출하려면), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hosikiti/items/91f185ce243807173bf4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)