Typescript 如何对';s";作为常量;?

Typescript 如何对';s";作为常量;?,typescript,types,Typescript,Types,这是我的密码: export type Types = 'a' | 'b'; export type MyPartials = { readonly [P in keyof Types]?: number; }; export interface MyI { readonly name: string; readonly myPartials: MyPartials; } export const myIs = [ { name: 'A', myPart

这是我的密码:

export type Types = 'a' | 'b';

export type MyPartials = {
  readonly [P in keyof Types]?: number;
};

export interface MyI {
  readonly name: string;  
  readonly myPartials: MyPartials;
}

export const myIs = [
  {
    name: 'A',
    myPartials: {a: 5},
  },
  {
    name: 'B',
    myPartials: {},
  },
  {
    name: 'C',
    myPartials: {},
  },
] as const;

const typeCheck = (arr: readonly MyI[]): void => {};

typeCheck(myIs); //error on arg

这给了我一个我无法理解的错误信息,主要是因为它太冗长了,我不知道我的眼睛应该落在哪里。这项工作的全部目的是检查数组中的每个元素是否都是
MyI
。为什么我不能将其传递到接受
MyI[]
的函数中?

您只需要修复
MyPartials

export type MyPartials = {
  readonly [P in Types]?: number;
};

最后一个建议使我的代码得以编译。事实上,仅此而已。无需
只读
:)