TypeScript 采坑系列: typescript Property 'xx' does not exist on type 'Function'

2,768 阅读1分钟
  • Javascript 中获取对象的属性或者方法使用点或者中括号的这两种方式即可,例如:
const obj = {
	a: 'a'
}
obj.a // 'a'
obj.b // undefined
  • 但是在 Typescript 中,有时会提示像 Property 'value' does not exist on type 'Object' 的错误,这是因为 Typescript 在执行代码检查时在该对象没有定义相应属性
  • 解决方式:
    • 将对象类型设置为 any,例如:
    const obj:any = {
        a: 'a'
    }
    obj.b = 'b'
    
    • 通过接口定义对象所具有的属性,例如:
      const obj:ValueObject = {
         a: 'a'
      }
      interface ValueObject {
         value?: string
     }
     obj.b = 'b'
    
    • 使用断言强制执行
     const obj = {
        a: 'a'
     }
    (obj as any).b = 'b'