+-
元素隐式地具有'any'类型,因为类型'string'的表达式不能用于索引类型'{status:typeof xyz; }

我是打字稿新手。

这就是我正在做的。

//importing a class
import { ApiStatus } from "./src/api/ApiStatus";

const routes = {
  status: ApiStatus,
}

for (let route in routes) {
  if (routes.hasOwnProperty(route)) {
    const ApiClass = routes[route];
    const app = new ApiClass(context);
    console.notice(`Creating Api for ${route}`);
    exports[route] = app.handler; // Create api
  }
}

在此行

const ApiClass = routes[route];

抛出错误说

元素隐式地具有'any'类型,因为类型的表达式 'string'不能用于索引类型'{status:typeof ApiStatus; }'。 在类型上未找到带有“字符串”类型参数的索引签名 '{状态:ApiStatus的类型; }'

我无法理解此错误,有人可以向我解释我在这里可能做错了什么吗?还是错误?

0
投票

您需要告诉打字稿它如何访问您拥有的索引类型

interface IRoutes {
    [string]: any;
    status: ApiStatus;
    ...
}
const routes: IRoutes = {
   status: ApiStatus,
}