TypeScript:如何编辑tsconfig.json以允许向现有对象添加键?

TypeScript:如何编辑tsconfig.json以允许向现有对象添加键?,typescript,Typescript,默认情况下,我希望以下各项正常工作: let j = {a:1}; j.b = 2; 我知道还有一些其他的解决方法,我只是想知道我是否可以只通过编辑tsconfig.json 我知道还有一些其他的解决方法,我只是想知道我是否可以只通过编辑tsconfig.json来实现它 简短回答 没有用于此的tsconfig.json选项 更多细节 这些tsconfig.json选项都不存在: “允许在定义类型后向该类型添加其他属性” “加宽对象文字类型推断以包括在其声明后添加的键” “将对象文字类型推断

默认情况下,我希望以下各项正常工作:

let j = {a:1};
j.b = 2;
我知道还有一些其他的解决方法,我只是想知道我是否可以只通过编辑
tsconfig.json

我知道还有一些其他的解决方法,我只是想知道我是否可以只通过编辑tsconfig.json来实现它

简短回答 没有用于此的
tsconfig.json
选项

更多细节 这些
tsconfig.json
选项都不存在:

  • “允许在定义类型后向该类型添加其他属性”
  • “加宽对象文字类型推断以包括在其声明后添加的键”
  • “将对象文字类型推断为
    Record
    types”
因此,没有允许以下操作的
tsconfig.json
选项:

let j = { a: 1 };
j.b = 2;
这是因为TypeScript在赋值时推断对象文字的类型。因此,您的原始代码与此等效

type J = { a: number };
let j: J = { a: 1 };
j.b = 2;

tsconfig.json
没有选项使所有对象默认为类型
{[key:string]:any}
。即使是这样,TypeScript可能仍然需要知道键和值的类型

建议您键入
j
,并输入以下内容:

let j: {[key: string]: number} = {a:1};
j.b = 2;

如果你不使用typescript的类型系统,它有什么意义?将变量声明为
any
,或者为其指定实际类型。Typescript将从它的初始声明中推断出类型,并且您不能真正更改该行为。它不应该是
类型J={[key:string]:number}
,因为
{a:number}
仅限于单个键
a
?@stackoverflow新手我试图说明OP要求TypeScript使用
tsconfig.json
选项允许什么。