相关疑难解决方法(0)

Typescript:如何为方法参数中使用的函数回调(如任何函数类型,而不是通用任何函数)定义类型

目前我的类型定义为:

interface Param {
    title: string;
    callback: any;
}
Run Code Online (Sandbox Code Playgroud)

我需要这样的东西:

interface Param {
    title: string;
    callback: function;
}
Run Code Online (Sandbox Code Playgroud)

但第二个不被接受.

javascript typescript

248
推荐指数
9
解决办法
18万
查看次数

为什么接口定义中需要参数名称?我可以在实现过程中选择新的参数名称

不确定这是否是一个愚蠢的问题,但我只是注意到了这一点:

public interface IActivityDao : IDao<Activity>
{
    IList<Activity> GetAllSinceSequence(long sequence, int count);
}

public class ActivityDao : AbstractNHibernateDao<Core.Domain.Activity>, IActivityDao
{        
    public IList<Activity> GetAllSinceSequence(long sequence, int maxRecords)
    {

    }
}
Run Code Online (Sandbox Code Playgroud)

在我的实现中,我调用了第二个参数'maxRecords'.然而,在界面中,它被定义为"计数".编译器仍然认为接口已实现,这很好,但可能会导致一些歧义.显然,我应该重命名其中一个参数以匹配另一个参数.

在重命名之前我玩了一下,发现了一些有趣的东西.我不允许将我的界面声明为:

public interface IActivityDao : IDao<Activity>
{
    IList<Activity> GetAllSinceSequence(long, int);
}
Run Code Online (Sandbox Code Playgroud)

这只是编译器对C#语义的过度保护吗?除了使代码更具可读性之外,接口方法中的参数名称的用途是什么?在我看来,如果在实现时不强制参数名称,它会引起歧义.

c#

15
推荐指数
2
解决办法
2534
查看次数

Angular:将函数传递给对象内的服务

我有一个组件,我可以在其中传递我想要在模态中显示的内容,如下所示:

  openConfirmModal() {
    this.service.openmodal(
      {
        buttons: [ {name: 'Close'} ]
      }
    );
  }
Run Code Online (Sandbox Code Playgroud)

模态服务是这样的:

  openmodal(input: String) {
    const dialogRef = this.dialog.open(popupComponent, {
      data: new ModalConfirmData({
        buttons: Object.values(data)[0]
      })
    });
  }
Run Code Online (Sandbox Code Playgroud)

在我的 popupComponent 里面我有:

export class ModalPopupData {
  actions: Array<Object>;

  constructor(input?) {
    if (input) {
      this.buttons = input.buttons;
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

现在一切正常,但我现在想做的是将一个函数传递给我的服务,以便它使用它。像这样的东西,但我不知道如何:

{
  function: (modalComponent) => {
    modalComponent.close();
  }
}
Run Code Online (Sandbox Code Playgroud)

angular

5
推荐指数
1
解决办法
1万
查看次数

Typescript 没有函数类型?

我需要将现有的 javascript 代码克隆到 Typescript 中。JavaScript 是:

object.getsomething( function(err, result) {
    // async
});
Run Code Online (Sandbox Code Playgroud)

如何输入参数function(err,result)

我试过retrieve(func: function(err:string, result:string) : any){}

但我的智能感知说找不到“错误”和“结果”名称。我找不到任何有关“函数”类型的文档。

typescript

-4
推荐指数
1
解决办法
243
查看次数

标签 统计

typescript ×2

angular ×1

c# ×1

javascript ×1