Vue中调用toString()触发PhpStorm报错“Method expression is not of Function type”
解决PhpStorm对vue-i18n $t().toString()的错误提示
问题原因
PhpStorm无法自动识别this.$t()的返回类型,误判其不是字符串类型,因此对后续的toString()调用抛出错误提示,但实际代码运行正常。
解决方法
方法1:使用类型断言(TypeScript项目适用)
显式告诉IDE$t()的返回值是字符串,消除类型误判:
(this.$t("my.translation.key") as string).toString();
方法2:改用String()转换
直接用原生String()函数替代toString(),同样能完成类型转换,且不会触发IDE错误提示:
String(this.$t("my.translation.key"));
方法3:添加vue-i18n类型声明文件
在项目根目录创建shims-vue-i18n.d.ts文件,补充$t的类型定义,让IDE正确识别返回类型:
import { Composer } from 'vue-i18n'; declare module '@vue/runtime-core' { interface ComponentCustomProperties { $t: Composer['t']; } }
保存后重启PhpStorm,类型提示会自动修复。
内容的提问来源于stack exchange,提问作者Febertson
相关产品推荐
相关产品推荐

