javascript - 为什么我无法访问函数属性?

标签 javascript reactjs typescript

我正在编写一个引用回调函数的函数。但是我似乎无法访问它的属性。

const example = (
   callback: (...args: unknown[]) => unknown
): void => ({
   name: callback.name // <- errors
   // ...
})

我的问题是,不喜欢我访问函数属性。

name: callback.name 
// ts(2339): Property 'name' does not exist on type '(...args: any[]) => any'

访问函数名称(或其他 Function 属性)的正确方法是什么?

Typescript version: "ˆ3.9.7" (latest as to the day of this post)

最佳答案

好吧,我找到了导致它的原因以及解决方法。 出现这个问题是因为我的 tsconfig.json 在我的项目中是如何设置的。

// tsconfig.json
{
  "compilerOptions": {
    "target": "es5",
    // ....
  },
}

原因是 interface Functon 仅在 lib.es6.d.ts 中声明

所以根据需要,为了解决这个问题,可以

  • 要么升级tsconfig.json中的目标版本

    {
      "compilerOptions": {
         "target": "es6" // was "es5"
         // ...
      }
    }
    
  • 或者指定要包含在编译中的"lib"

    {
      "compilerOptions": {
          "target": "es5",
          "lib": ["es6", "dom", "es2016", "es2017", "es5"], // needs at least es6
         // ...
      }
    }
    

关于javascript - 为什么我无法访问函数属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63214752/

相关文章:

javascript - 如果用户 "pulls the plug"并关闭他们的计算机,是否会触发任何窗口事件?

javascript - iPhone 6 中的 JQuery 工具提示未关闭

javascript - Recaptcha v2 在重置时抛出错误并且其容器元素从 DOM 中移除

javascript - :hover select target only, 不是同类家长

javascript - 如何重置 JavaScript 数组中的数组索引

node.js - 如何使用 aws-amplify 验证 Node/express 中的 accessToken?

json - 输入 "json"| Angular HttpClient 中的 "json"不满足 undefined

javascript - 使用 @ViewChild 按类名选择元素?

javascript - React Native - 设置两个函数的顺序

javascript - 将 JS 文件导入 Ionic/Angular 2