Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript Can';t在自定义对象贴图类型上展开_Typescript - Fatal编程技术网

Typescript Can';t在自定义对象贴图类型上展开

Typescript Can';t在自定义对象贴图类型上展开,typescript,Typescript,我有这个实用程序接口: export interface ObjectMap<T = any> { [key: string]: T; } 我认为代码有问题 delta[language]-是一个字符串,而不是一个对象,传播它有点奇怪 {…someObj,…“string”}-意外代码 我认为您希望扩展…delta本身,或者您需要更好地定义其类型,如果它是字符串对象的对象,那么它应该是delta:ObjectMap Object.assign具有(目标:对象,…来源:any[

我有这个实用程序接口:

export interface ObjectMap<T = any> {
  [key: string]: T;
}

我认为代码有问题

delta[language]
-是一个字符串,而不是一个对象,传播它有点奇怪

{…someObj,…“string”}
-意外代码

我认为您希望扩展
…delta
本身,或者您需要更好地定义其类型,如果它是字符串对象的对象,那么它应该是
delta:ObjectMap


Object.assign
具有
(目标:对象,…来源:any[]):any签名。这就是它接受字符串的原因

export const saveLocalizationDeltas = (
  namespace: string,
  deltas: ObjectMap<string>,
) => {
    ...
    const updated = localizations
      ? { ...localizations, ...deltas[language] } // Spread types may only be created from object types
      : deltas[language];
Object.assign({}, JSON.parse(localizations), deltas[language])