我正在将一个 JS 函数实现到 typescript 中,它在 JS 上运行良好,但在 TS 上,我得到:
[ts] Cannot find name 'PasscodeAuth'. Did you mean 'passcodeAuth'?
function passcodeAuth() {
return PasscodeAuth.isSupported()
.then(() => {
return PasscodeAuth.authenticate()
})
.then(success => {
AlertIOS.alert('Authenticated Successfully');
})
.catch(error => {
console.log(error)
AlertIOS.alert(error.message);
});
}
所以不是导入,也不是在任何地方定义,但它在 JS 上工作,那么我怎样才能让它被 TS 识别呢? 在 JS 上,我可以将我的参数命名为 JS 上的任何单词,并且它将具有 isSupported 和身份验证,即使现在是一个真实的参数?
谢谢!
最佳答案
撇开 PasscodeAuth
是否实际存在的问题,您可以使用 declare
语句将其告知 typescript 。对于您的示例:
// Put this at the root level of the file that uses PasscodeAuth
declare const PasscodeAuth: any;
这会将 PasscodeAuth
声明为类型为 any
的变量。然后您可以在您的文件中使用它而不会出现与该变量相关的错误,但是由于它的类型是 any
,因此您不会从中获得任何类型安全性。如果您碰巧知道它的类型,则可以指定更具体的类型而不是 any
。
declare
语句只是一个类型注释,因此该行实际上不会对发出的 javascript 代码产生任何影响。您提到您的代码已经按原样运行,尽管存在 typescript 错误,因此声明听起来正是您所需要的。
关于javascript - 将 JS 函数实现为 typescript ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49641686/