如何在 TypeScript 中描述这个对象的形状?

How to describe this object's shape in TypeScript?

该对象看起来像字典和常规 JavaScript 对象的混合体:

var obj = {
  'dynamic prop1': { },
  'dynamic prop2': function () { },
  'dynamic prop3': function () { },
  'dynamic prop4': function () { },

  func: function() {},
  prop: null
};

分配给对象的大部分属性将由基于字符串的 ('dynamic prop') 属性表示,并将包含对象或函数。

此外,它将包含两个附加属性:prop 和 func。

这是一些文本,因此不是纯代码答案。

interface MyObjType {
  [key: string]: (() => void) | { maybeYouHaveSomePropertiesToDeclare?: string };
  func(): void;
  prop: any;
}