javascript - Typescript:表达函数实例属性

标签 javascript typescript

给定一个 JS 函数

function someMethod (arg1: boolean) {
  this.state = { };

  // logic and stuff
  return arg1;

如何在 Typescript 中表达状态

someMethod(true);
someMethod.state; // Property 'state' does not exist on type '(arg1: boolean) => boolean'

最佳答案

如果您希望 someMethod 成为一个也具有属性的普通函数,您可以简单地将其声明为同时具有调用签名和属性,如下所示:

declare const someMethod: {
  (arg1: boolean): boolean;
  state: any; // or whatever type you intend someMethod.state to have
}

但是,如果 someMethod 实际上要用作构造函数,我强烈建议将其重写为 class相反:

declare class someClass {
  constructor(arg1: boolean);
  state: any;
}

然后像这样使用它(注意new关键字):

const instance = new someClass(true);
instance.state = {};

关于javascript - Typescript:表达函数实例属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54950273/

相关文章:

javascript - 括号前括号中的强制转换/断言在 TypeScript 代码中意味着什么?

javascript - 根据 Typescript 中输入对象的属性,使用键从函数返回对象

javascript - $routeChangeSuccess 不适用于 ngNewRouter AngularJS 1.4

javascript - 如何使用 JavaScript 关闭浏览器选项卡(父窗口)

javascript - 在 Handlebars "(generated application controller)"helper 中显示 "#each"而不是值内容

reactjs - 带有 Typescript 的 Redux-Toolkit。无法调度由 createAsyncThunk 创建的操作

typescript - 在 typescript AST 中获取变量声明类型的正确方法?

html - 如何将数据从一个组件传递到另一个组件

javascript - 在带有谷歌地图嵌入 api 的 ng-src 中使用 Angular 表达式

javascript - 如何判断函数在哪个文件中执行?