javascript - JS fonksiyonunu typescript'e uygulama
Bir JS fonksiyonunu TypeScript'e uyguluyorum, JS'te sorunsuz çalışıyor, ancak TS'te şunu alıyorum:
[ts] 'PasscodeAuth' adı bulunamıyor. 'passcodeAuth' demek istediniz mi?
function passcodeAuth() {
return PasscodeAuth.isSupported()
.then(() => {
return PasscodeAuth.authenticate()
})
.then(success => {
AlertIOS.alert('Authenticated Successfully');
})
.catch(error => {
console.log(error)
AlertIOS.alert(error.message);
});
}
Yani bu bir import değil veya herhangi bir yerde tanımlı değil, ama JS üzerinde çalışıyor, peki TS için bunu nasıl tanınabilir hale getirebilirim? JS'te parametremi herhangi bir kelime olarak adlandırabilirim ve isSupported ve authenticate özelliğine sahip olur, hatta is artık gerçek bir parametre olmasa bile?
teşekkürler!
Cevap #1
PasscodeAuth'in gerçekten var olup olmadığı konusunu bir kenara bırakırsak, TypeScript'e bunu bir declare ifadesi kullanarak bildirebilirsiniz. Örneğiniz için:
// Put this at the root level of the file that uses PasscodeAuth
declare const PasscodeAuth: any;
Bu, PasscodeAuth değişkenini any türünde bir değişken olarak ilan edecektir. Daha sonra dosyanızda bu değişkenle ilgili hata almadan kullanabilirsiniz, ancak any olarak yazıldığı için ondan herhangi bir tür güvenliği elde edemezsiniz. Eğer onun türünü biliyorsanız, any yerine daha spesifik bir tür belirtebilirsiniz.
declare ifadesi yalnızca bir tür açıklamasıdır, bu yüzden o satır gerçekte üretilen javascript kodu üzerinde herhangi bir etkiye sahip olmayacaktır. Kodunuzun typescript hatalarına rağmen zaten çalıştığını belirttiniz, bu yüzden bir bildirim tam olarak ihtiyacınız olan şey gibi görünüyor.
