在编写 if ( (lang as Java).helloJava ) 时,一直报红:This condition will always return true since the function is always defined. Did you mean to call it instead? 请问下是开了什么配置吗
作者回复: 这是3.7后加入的校验,改成 if(!!(lang as Java).helloJava) 即可。
2020-06-09
1
工号996
使用in时遇到的问题
enum Type { Strong, Week }
class Java {
helleJava() {
console.log('Hello Java')
}
java: any
}
class JavaScript {
helleJavaScript() {
console.log('Hello JavaScript')
}
javascript: any
}
function getLang(type: Type) {
let lang = type === Type.Strong ? new Java() : new JavaScript()
if('java' in Java) {
lang.helleJava() // 错误提示:类型“Java | JavaScript”上不存在属性“helleJava”。
} else {
lang.helleJavaScript() // 错误提示:类型“Java | JavaScript”上不存在属性“helleJavaScript”。
}
return lang
}