为什么打字稿会给明确定义的类型分配任何脚本?

问题描述

我正在尝试创建一个包含与对象关联的所有规则的类。所有规则都有特定的功能签名:

type ruleFunction = (dev: Developer,utilites:utilitesType) => boolean;

class Developer {
  test: string;
}

interface utilitesType {
  markRule:  (this: _Rule,result: boolean) => {

  }
}

但是,当我在课堂上使用此界面时:

class rules implements Record<keyof rules,ruleFunction> {
    age(dev,util) {
        util. //no intelisense
    }
}

经过进一步调查,似乎vs代码将参数的类型标记为any,将返回类型标记为void。 (请参见下面的屏幕截图)奇怪的是,它应该从界面中推断类型,我该如何解决?

screenie

解决方法

通过不声明成员参数的类型,您基本上将它们隐式声明为“ any”。

您也不会返回任何内容,因此无法推断返回类型。

您必须使用符合您指定的“ ruleFunction”的正确函数原型。

这有效:

class rules implements Record<keyof rules,ruleFunction>
{
    age(dev: Developer,utilities: utilitesType): boolean
    {
        return false;
    }
}

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...