如何在TypeScript中重新定义已有函数类型以消除VSCode波浪线
解决方法
要消除VSCode中给函数添加属性时的波浪线提示,你可以用以下几种方式处理:
方式一:对函数引用做类型断言
直接在赋值属性时,将函数断言为any类型:
function f() {} (f as any).someProperty = "I want to do this without squizzle in vscode";
方式二:重新赋值为any类型变量
如果希望后续使用f时都不会有类型提示,可将函数赋值给一个any类型的变量:
const f = (function() {}) as any; f.someProperty = "I want to do this without squizzle in vscode";
方式三:扩展函数类型(更规范)
如果不想直接用any,可以定义包含目标属性的接口,再将函数断言为该类型:
interface F extends Function { someProperty?: string; } const f = (function() {}) as F; f.someProperty = "I want to do this without squizzle in vscode";
你原来的写法function f() {} as any;无效,是因为TypeScript不允许在函数声明语句后直接添加类型断言,必须通过上述方式调整。
内容的提问来源于stack exchange,提问作者user310291
相关产品推荐
相关产品推荐

